A という名前の次のテーブルを検討してください。
State City Rank
S C 1
AB C1 2
* C2 3
そのようなすべての列を選択したい
- State が AB の場合、そのようなすべての行を返します
- 条件 1 が満たされない場合、状態が * のすべての行が返されます。条件 1 が満たされている場合は、この条件を参照しないでください
上記の例のように、行 2 を取得する必要があります。次のようないくつかのことを試しました
select state
case when a.state = 'AB' then 1
when a.state = '*' then 2
end as priority from A where state in ('AB','*') order by priority
しかし、上記のクエリは複数の行を返します。上記の条件に一致する正確な1行が必要です。
助けてください
EDIT1:
パフォーマンスの問題により、サブクエリを避けたい。