- If 조건이 TRUE일 경우에만 THEN 절 이후의 문장들을 실행
- FALSE, NULL 이면 다음 elsif 절의 조건을 평가하거나 else 이후의 문장들을 실행
declare
age number;
begin
if age < 30 then
p('Hi ~~'); ---> 1
p('You''re young.'); ---> 2
elsif age < 60 then
p('You''re still young.'); ---> 3
elsif (age < 100) is null then
p('Your age is null');
else
p('Your age is over 60.');
end if;
end;
/
* age 변수의 값이 30 미만이라면
- 1, 2의 문장만을 수행하고 if 문을 빠져나옴. (3번 문장 실행 안함)
* age 변수가 선언시 값이 주어지지 않았으므로 NULL 값으로 초기화 됨
- 앞선 두 개의 조건절 (age < 30, age < 60)은
(null < 30, null < 60)이 되므로 조건절을 평가한 결과는 NULL -> 통과
- (age < 100) is null 은 (null < 100) is null => null is null 이므로
조건절 평가 결과는 TRUE
'Oracle > PL/SQL' 카테고리의 다른 글
15일차 # 5-13: CASE Statement (0) | 2012.04.24 |
---|---|
15일차 # 5-10: CASE Expression (0) | 2012.04.24 |
15일차 # 5-3: Using PL/SQL Control Structures (0) | 2012.04.24 |
15일차 # 4-21: SQL Cursor Attributes (0) | 2012.04.24 |
15일차 # 4-19: SQL Cursor = Implicit Cursor (0) | 2012.04.24 |