nhibernate - сортировать ноль в конце - PullRequest
1 голос
/ 05 октября 2008

Использование NHibernate из C # и только HQL (не SQL) способом, совместимым с MS SQL Server 2005/2008 (и предпочтительно Oracle).

Есть ли способ записать порядок по предложению, чтобы нулевые значения сортировались в конце результатов запроса, а ненулевые результаты будут сортироваться в порядке возрастания?

На основании ответа на вопрос, на который ссылается nickf, ответ:

select x from MyClass x order by case when x.MyProperty is null then 1 else 0 end, x.MyProperty

Ответы [ 2 ]

0 голосов
/ 18 октября 2008

В какой-то момент я просто сдался и исправил порядок сортировки в своем классе коллекции.

Поскольку я просто перемещал NULL, все, что мне нужно было сделать, это очистить нули в начале коллекции и добавить их в конец.

Если сделать ставку на четкое кодирование, это можно сделать даже в массиве.

Тем не менее, этот ORDER BY CASE - умный и читаемый трюк.

0 голосов
/ 05 октября 2008

Я не знаю, помогает ли это или нет, но есть другой вопрос, задающий то же самое о том, как сделать это с MySQL .

Возможно, ту же логику можно применить к HQL?


edit: это принято, так что, очевидно, да, может.

Вот принятый ответ на этот вопрос ( Билл Карвин ):

SELECT * FROM myTable
WHERE ...
ORDER BY CASE WHEN myDate IS NULL THEN 1 ELSE 0 END, myDate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...