它是最簡單的IF控制語句,經常使用的決策和改變程序執(zhí)行的控制流程的形式。
IF語句關聯(lián)的條件通過THEN和END IF關鍵字封閉的語句序列。如果條件為TRUE,語句得到執(zhí)行,并且如果條件為FALSE或NULL,那么IF語句什么都不做。
IF-THEN語句的語法是:
IF condition THEN S; END IF;
其中,條件是布爾或關系條件,S是一個簡單的或復合語句。一個IF-THEN語句的例子如下:
IF (a <= 20) THEN c:= c+1; END IF;
如果布爾表達式條件計算為真,那么代碼的if語句里面的模塊將被執(zhí)行。如果if語句結束后布爾表達式的值為false那么第一組碼(閉幕結束后,若)將被執(zhí)行。
讓我們嘗試一個完整的例子,來說明這一概念:
DECLARE a number(2) := 10; BEGIN a:= 10; -- check the boolean condition using if statement IF( a < 20 ) THEN -- if condition is true then print the following dbms_output.put_line('a is less than 20 ' ); END IF; dbms_output.put_line('value of a is : ' || a); END; /
讓我們嘗試一個完整的例子,將說明這一概念:
a is less than 20 value of a is : 10 PL/SQL procedure successfully completed.
考慮我們在創(chuàng)建表以及表中的一些記錄,因為我們在創(chuàng)建 PL/SQL變量類型
DECLARE c_id customers.id%type := 1; c_sal customers.salary%type; BEGIN SELECT salary INTO c_sal FROM customers WHERE id = c_id; IF (c_sal <= 2000) THEN UPDATE customers SET salary = salary + 1000 WHERE id = c_id; dbms_output.put_line ('Salary updated'); END IF; END; /
當上述代碼在SQL提示符執(zhí)行時,它產生了以下結果:
Salary updated PL/SQL procedure successfully completed.