它是最簡單的IF控制語句,經(jīng)常使用的決策和改變程序執(zhí)行的控制流程的形式。
IF語句關(guān)聯(lián)的條件通過THEN和END IF關(guān)鍵字封閉的語句序列。如果條件為TRUE,語句得到執(zhí)行,并且如果條件為FALSE或NULL,那么IF語句什么都不做。
IF-THEN語句的語法是:
IF condition THEN S; END IF;
其中,條件是布爾或關(guān)系條件,S是一個簡單的或復(fù)合語句。一個IF-THEN語句的例子如下:
IF (a <= 20) THEN c:= c+1; END IF;
如果布爾表達式條件計算為真,那么代碼的if語句里面的模塊將被執(zhí)行。如果if語句結(jié)束后布爾表達式的值為false那么第一組碼(閉幕結(jié)束后,若)將被執(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;
/
當(dāng)上述代碼在SQL提示符執(zhí)行時,它產(chǎn)生了以下結(jié)果:
Salary updated PL/SQL procedure successfully completed.