2013-10-08 31 views
1

我有一個數據集,其中包含許多訂單,每個訂單都包含訂單商品。我有邏輯尋找一個特定的訂單項目..使用NULL值對字符串進行分組

order_id status 
2933475 PAID \N 
2933475 PAID \N 
2933475 PAID VALUE 
2933475 PAID \N 

與價值線項目可以出現在任何行項目或者根本沒有。當我通過order_id進行分組時,我希望它顯示VALUE(如果每個訂單ID都存在)或\ N(如果不存在)。

我認爲使用COALESCE()會做到這一點,但我仍然得到NULL時分組這個順序。

回答

1

根據您的表/查詢結構,這樣的事情可能工作:

select 
    order_id, 
    max(case when status = 'VALUE' then status else NULL end) as status 
from table 
group by order_id 
+0

謝謝!沒有考慮到這一點,因爲我認爲NULL沒有任何價值可以視爲最大值。猜猜我需要再次打開書本! – Jonathan

+0

沒問題。 NULL僅用於聚合 - 所以NULL,1和2的AVG是1.5。請記住!如果它也回答你的問題,請確保你將它標記爲正確的答案。謝謝 :) –

相關問題