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;