2018.11.18
文章目錄
-
- 前言
- 方法
前言
某個子產品讀取SQL server時,需要按一定的優先級讀取,比如滿足T.a = 'A’的先讀,T.b='B’的次之,T.c='C’的優先級最低。最簡單的方案,就是分三條SQL讀取,依次判斷是否為空,再決定是否讀下一條。但我想嘗試一下,隻用一條SQL能否實作。
方法
使用Case-When1
select * from T t
where
t.a = 'A' or
t.b = 'B' or
t.c = 'C'
order by
case
when t.a = 'A' then 0
when t.b = 'B' then 1
when t.c = 'C' then 2
end asc;
- Specifying a conditional order ↩︎