сделать более понятное для человека решение
blockquote>Извините, это лучшее, что я могу сделать с вашим требованием.
Настройка схемы MS SQL Server 2008:
create table YourTable ( ParentID int, ChildName varchar(10) ); insert into YourTable values (1, 'Max'), (1, 'Jessie'), (2, 'Steven'), (2, 'Lucy'), (2, 'Jake'), (3, 'Mark');
Запрос 1:
with T as ( select ParentID, ChildName, row_number() over(partition by ParentID order by ChildName) as rn, count(*) over(partition by ParentID) as cc from YourTable ) select T1.ParentID, ( select case when T2.rn = 1 and T2.cc > 1 then ' and ' else ', ' end + T2.ChildName from T as T2 where T1.ParentID = T2.ParentID order by T2.rn desc for xml path(''), type ).value('substring(text()[1], 3)', 'varchar(max)') as ChildNames from T as T1 group by T1.ParentID
| PARENTID | CHILDNAMES | ------------------------------------ | 1 | Max and Jessie | | 2 | Steven, Lucy and Jake | | 3 | Mark |
Eclipse 3.6 позволяет отключать форматирование, помещая специальный комментарий, например
// @formatter:off
...
// @formatter:on
. Функции включения / выключения должны быть включены в настройках Eclipse: Java > Стиль кода > Средство форматирования . Нажмите Изменить , Выключить / включить теги , включить Включить выключить / включить теги .
Также можно изменить магические строки в настройках - ознакомьтесь с документацией по Eclipse 3.6 здесь .
Дополнительная информация
Java > Стиль кода > Форматирование > Редактировать > Теги выкл. / Вкл.
Это предпочтение позволяет определить один тег для отключения и один тег для включения средства форматирования (см. вкладку «Теги выключения / включения» в профиле средства форматирования):
Также необходимо включить флаги из Форматирование Java
Этот прием работает:
String x = "s" + //Formatter Hack
"a" + //
"c" + //
"d";
Я бы посоветовал не использовать форматер. Плохой код должен выглядеть плохо, а не искусственно хорошим. Хороший код требует времени. Нельзя обмануть качество. Форматирование является частью качества исходного кода.
AFAIK из Eclipse 3.5 M4 на форматере имеет параметр «Никогда не соединять строки», который сохраняет разрывы пользовательских строк. Может быть, это то, что вы хотите.
Еще есть эта уродливая уловка
String query = //
"SELECT FOO, BAR, BAZ" + //
" FROM ABC" + //
" WHERE BAR > 4";
Если вы поставите знак плюса в начале строки, она отформатируется по-другому:
String query =
"SELECT FOO, BAR, BAZ"
+ " FROM ABC"
+ " WHERE BAR > 4";
Я использую строковые части фиксированной ширины (заполненные пробелами), чтобы программа форматирования не испортила отступы в моей строке SQL. Это дает смешанные результаты и не будет работать там, где пробелы не игнорируются, как в SQL, но может быть полезно.
final String sql = "SELECT v.value FROM properties p "
+ "JOIN property_values v ON p.property_id = v.property_id "
+ "WHERE p.product_id = ? "
+ "AND v.value IS NOT NULL ";