直到现在我有以下查询:
select dl
from Dienstleistung as dl inner join
dl.DienstleistungsOrte as dlo with dlo.ID = :raumID
order by dl.Bezeichnung
是否可以订购具有条件的两个列?
我想要的是由dl.Bezeichnung和dl.Sortierung订购。条件应该是:
IF dl.Sortierung = 0 ---> order by dl.Bezeichnung
and
IF dl.Sortierung > 0 --->order by dl.Sortierung
答案 0 :(得分:5)
试试这个:
ORDER BY
CASE
WHEN dl.Sortierung = 0 THEN dl.Bezeichnung
WHEN dl.Sortierung > 0 THEN dl.Sortierung
END
或者:
ORDER BY
CASE
WHEN dl.Sortierung = 0 THEN dl.Bezeichnung
ELSE dl.Sortierung
END
答案 1 :(得分:2)
如果dl.Sortierung
可以< 0或null
,执行:
order by case
when dl.Sortierung = 0 then dl.Bezeichnung
when dl.Sortierung > 0 then dl.Sortierung
else SomeOtherColumn
end
否则,如果dl.Sortierung
始终> = 0,请执行
order by case
when dl.Sortierung = 0 then dl.Bezeichnung
else dl.Sortierung
end