我試圖在SQL查詢中使用IF ELSE語句,因爲我想根據每個PLN#的包大小對每個區的單元求和。我可以這樣做嗎?這裏是我的嘗試,這是不行的:在Oracle SQL中使用IF語句
SELECT district_nbr,PLN_NBR, SUM(A.LO_IOH_UNITS) AS TOTAL_UNITS, SUM (A.LO_IOH_EXT_COST_DLRS) AS TOTAL_DOLLARS
FROM FCT_LOIOH_DAY_STR_PLN A, DIM_PROD_PLN B, DIM_LOCATION C
WHERE B.PLN_NBR IN(40000683181, 40000418723, 40000335776)
AND A.PROD_ID = B.PROD_ID
AND A.LOC_ID = C.LOC_ID
if PLN_NBR = '40000683181' then SUM(A.LO_IOH_UNITS)/25
else SUM(A.LO_IOH_UNITS)/60
GROUP BY district_nbr,PLN_NBR
您不能在SQL中使用'IF'語句,只能在PL/SQL中使用。你可以在SQL中使用'CASE'語句。但是我無法弄清楚你的'IF'語句在你的'WHERE'子句中試圖做什麼。你想比較這些數額?你想「選擇」他們嗎?還有別的嗎? – 2014-11-03 20:33:32
謝謝,我不知道。我不想比較任何東西。我希望任何PLN#= 40000683181然後將單位總和除以25,任何其他PLN#不等於後者應該有單位的總和除以60 ...我可以用一個案例來做到這一點嗎?如果是這樣,怎麼樣? – SQUISH 2014-11-03 20:39:15
所以,你想在'SELECT'列表中進行這個計算嗎?不在'WHERE'子句中? – 2014-11-03 20:42:52