In the following code, the two IF statements appear to be equivalent.
If either x or y is NULL, then the first IF statement assigns the value of y to high and the second IF statement assigns the value of x to high.
SQL> SQL> DECLARE-- from w w w.j a v a 2 s .c om 2 x INTEGER := 2; 3 Y INTEGER := 5; 4 high INTEGER; 5 BEGIN 6 DBMS_OUTPUT.PUT_LINE('high:'||TO_CHAR(high)); 7 IF (x > y) 8 THEN high := x; 9 ELSE high := y; 10 END IF; 11 12 13 DBMS_OUTPUT.PUT_LINE('high:'||TO_CHAR(high)); 14 15 IF NOT (x > y) 16 THEN high := y; 17 ELSE high := x; 18 END IF; 19 DBMS_OUTPUT.PUT_LINE('high:'||TO_CHAR(high)); 20 END; 21 / high: high:5 high:5 PL/SQL procedure successfully completed. SQL>