0
在MySQL中,你可以像奈斯利選擇和表達分組,在不使用的情況下,當
select bar > 2, count(*) from foo group by (bar > 2)
好話得到像
bar > 2 count -------------- 0 12 1 26
結果表明,有12個行與酒吧< = 12和26與酒吧> 12.
我想在AS/400上的DB2數據庫上做同樣的事情。它不喜歡by子句中選擇或組表達式,但可以解決,使用
select when (bar > 2) then 1 else 0 end, count(*) from foo
group by when (bar > 2) then 1 else 0 end
這工作,但當然是極其醜陋。我的問題是:是否有更好的方法來做到這一點,特別是考慮到我可能會以這種方式檢索數十個表達式的綜合值?也許甚至有一種我忽略的符合標準的做法。
編輯:事實證明,情況 - 何時是符合標準的方式。
「CASE WHEN是符合標準的」 =>我沒有可用的標準的一個副本,但開業以來這個問題驗證這一點我的實驗:它適用於SQLITE3 ,MySQL和AS/400 DB2。 – Confusion 2011-01-19 10:45:40