1
我有一個表:是否有可能在同一個查詢中做不同選擇?
id integer
name text
sumbuy numeric
priority integer
....
表包含:
id , name , sumbuy, priority, ...
1 xx 33 12
2 dd 45 7
4 aa 54 0
我需要編寫一個查詢基於priority
欄位,讓信息。 問題是數據根據優先級而改變。
Select case when priority>0 then 'High'::Text
when popartid<=0 then 'Low'::Text
end as Emg,*
from A
這yeilds:
Emg, id , name , sumbuy, priority, ...
High 1 xx 33 12
High 2 dd 45 7
Low 4 aa 54 0
但我的目標是當Emg
是Low
有我手動給在指出錯誤的數據。 =>name
將是「不重要」 sumbuy
將爲0 所以,我希望看到的是:
Emg, id , name, sumbuy, priority, ...
High 1 xx 33 12
High 2 dd 45 7
Low 4 not important 0 0
基本上,我所問的是,如果它是poosible的選擇statment基於不同勢指令執行該行的數據... 類似:
Select case when priority>0
then 'High'::Text as Emg, id, name, sumbuy, priority
when popartid<=0
then 'Low'::citext as Emg, id, 'not important' as name, 0 as sumbuy, priority
from A
這不是case
語法,但它正在示威我想要什麼。
除了編寫兩個不同的查詢之外,我該怎麼做?
做一個UNION ALL代替,或用幾個案例的。 – jarlh