ORACLE---IF 分支 中的NULL判斷和自己做的過程中暴露的錯誤
---P1
DECLARE
V_NUMBER1 NUMBER;
V_NUMBER2 NUMBER;
V_Result VARCHAR2(7);
BEGIN
IF V_NUMBER1 < V_NUMBER2 THEN
V_Result := 'YES';
ELSE
V_Result := 'NO';
END IF;
END;
----------------------------------
--P2
DECLARE
V_NUMBER1 NUMBER;
V_NUMBER2 NUMBER;
V_Result VARCHAR2(7);
BEGIN
IF V_NUMBER1 > V_NUMBER2 THEN
V_Result := 'NO';
ELSE
V_Result := 'YES';
END IF;
END;
-----------------------------------115
---P3
DECLARE
V_NUMBER1 NUMBER;
V_NUMBER2 NUMBER;
V_Result VARCHAR2(7);
BEGIN
IF (V_NUMBER1 IS NULL OR V_NUMBER2 IS NULL) THEN
V_Result :='UNKONWN';
ELSIF V_NUMBER1 > V_NUMBER2 THEN
V_Result := 'NO';
ELSE
V_Result := 'YES';
END IF;
END;
--1。不是用的=號 而是用的:=號
--2。每一個完整的句子後都要加上個;號。尤其是最後一個END後要加上;號,不然編譯過不去。
--3。對於IF ELSE 形式要改變對sql Server的思想,這裡的形勢是IF ..; ELSE ..; END IF;
--4. 再則就是要對輸入的值進行NULL判斷,因為NULL的話也是返回的False.
--5。判斷形勢還有多分支 形勢為IF THEN...;ELSIF THEN ..;ELSE ...; END IF; 是ELSIF 不是ELSEIF啊
--5. p3是最正確的。