我正在嘗試爲PLSQL執行IF/ELSE語句,但我不確定是否以正確的方式執行,因爲它總是有錯誤:缺少右括號如果(TO_NUMBER (SUBSTR(ATTR_VALUE,6,2))!= TO_NUMBER(SUBSTR(ATTR_VALUE,1,2)))那麼 但括號對我來說似乎是平衡的。SQL中的IF/ELSE條件
SELECT *
FROM
(
IF (TO_NUMBER(SUBSTR(ATTR_VALUE, 6, 2)) != TO_NUMBER(SUBSTR(ATTR_VALUE, 1, 2))) THEN
SELECT ID, DATE, ATTR_VALUE, (TO_NUMBER(SUBSTR(ATTR_VALUE, 6, 4))-TO_NUMBER(SUBSTR(ATTR_VALUE, 1, 4))-48) DIFF
ELSE
SELECT ID, DATE, ATTR_VALUE, (TO_NUMBER(SUBSTR(ATTR_VALUE, 6, 4))-TO_NUMBER(SUBSTR(ATTR_VALUE, 1, 4))) DIFF
END IF
FROM Table A
ORDER BY TIME
)
WHERE DIFF>26
請在這個問題上協助我。
你舉的例子是普通的SQL ,沒有涉及PL/SQL(存儲過程) –
if語句僅在pl/sql中需要使用case或decode語句,正如其他人所建議的那樣。 – glh