我有一個存儲過程。我正在傳遞一個布爾值,例如IS_ELIGIBLE。 現在我希望能夠寫出查詢是這樣的:Oracle CASE聲明?
SELECT col1,
CASE
WHEN IS_ELIGIBLE THEN col2 * 100
ELSE
col2 * 50
END
INTO OUT_COL1, OUT_SCORE
FROM TABLE_NAME
的問題是,因爲IS_ELIGIBLE不TABLE_NAME列之一,查詢錯誤的。我可以使用if..else ie編寫相同的查詢。
IF IS_ELIGIBLE
SELECT col1, col2 * 100
ELSE
SELECT col1, col2 * 50
END
但我會重複選擇語句兩次。我知道我可以創建函數來獲得該選擇語句,以便我不必重複兩次。但我只是好奇,如果它可以做,而不做如果..使用或創建新的功能? 謝謝。