1

今まで私は次のクエリを持っています:

select dl 
from Dienstleistung as dl inner join 
     dl.DienstleistungsOrte as dlo with dlo.ID = :raumID 
order by dl.Bezeichnung

条件付きで2列注文することは可能ですか?

私が欲しいのは、dl.Bezeichnung と dl.Sortierung で注文することです。条件は次のとおりです。

IF dl.Sortierung = 0 ---> order by dl.Bezeichnung
and
IF dl.Sortierung > 0 --->order by dl.Sortierung
4

2 に答える 2

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
于 2012-10-10T15:14:46.360 に答える
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
于 2012-10-10T15:14:38.557 に答える