我在Oracle表是這樣的SQL從行數據與空選擇最小值值
Col Col1 Col2 Col3 ColR
-- ---- ---- ---- ----
30 73 40 null -10
60 32 null 20 40
90 80 null null 10
80 45 81 30 50
我也可以在上面列設定爲0,而不是空。 我需要找到Col1中,col2的,COL3的最小值忽略空或0,由上校減去填充COLR
編輯: 我寫了一個CASE語句不工作,由於內部的空值我的桌子。
SELECT col,col1,col2,col3,
CASE
WHEN Col1 < Col2 AND Col1 < Col3
THEN Col - Col1
WHEN Col2 < Col1 AND Col2 < Col3
THEN Col - Col2
ELSE Col - Col3
END ColR
FROM
(SELECT col,col1,
CASE
WHEN col22 IS NULL
THEN NULL(i can also SET TO 0 but it will mess WITH my other calculation TO find MIN)
ELSE ROUND(100* ((col22)/(col44)))
END col2 ,
CASE
WHEN col33 IS NULL
THEN NULL
ELSE ROUND(100* ((col33)/(col44)))
END col3
FROM TABLE
)
我剛剛在我的select查詢中包含case語句。所有列值都從另一個查詢填充。
如果所有三列都爲空(或0)會發生什麼? – 2012-08-17 16:48:12
50 - 40 = -10是否是錯字? – 2012-08-17 16:54:52
@tony -yes錯字。 – jero 2012-08-17 17:03:01