SQL按条件排序?
到目前为止,我有以下疑问:SQL按条件排序?,sql,sql-server-2008,Sql,Sql Server 2008,到目前为止,我有以下疑问: select dl from Dienstleistung as dl inner join dl.DienstleistungsOrte as dlo with dlo.ID = :raumID order by dl.Bezeichnung 可以订购两个有条件的圆柱吗 我想订的是贝泽奇农和索蒂伦格。条件应为: IF dl.Sortierung = 0 ---> order by dl.Bezeichnung and IF dl.Sortie
select dl
from Dienstleistung as dl inner join
dl.DienstleistungsOrte as dlo with dlo.ID = :raumID
order by dl.Bezeichnung
可以订购两个有条件的圆柱吗
我想订的是贝泽奇农和索蒂伦格。条件应为:
IF dl.Sortierung = 0 ---> order by dl.Bezeichnung
and
IF dl.Sortierung > 0 --->order by dl.Sortierung
如果
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
如果
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
试试这个:
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
WHEN dl.Sortierung > 0 THEN dl.Sortierung
END
或:
第二行用ELSE第二行用ELSE