Oracle PL/SQL If-Else

Hướng dẫn sử dụng câu lệnh điều kiện IF trong PL/SQL Oracle.

Câu lệnh điều kiện IF được dùng để thực hiện hoặc bỏ qua các lệnh dựa vào một điều kiện.

Câu lệnh IF trong PL/SQL có 3 dạng :

IF … THEN

IF … THEN …ELSE

IF … THEN … ELSEIF

 

1.Lệnh IF … THEN trong PL/SQL

Lệnh IF trong PL/SQL được sử dụng để chỉ định một khối lệnh sẽ được thực hiện nếu điều kiện là Đúng (True).

Nếu điều kiện đánh giá là True, các câu lệnh sau THEN sẽ thực thi.Nếu khác, câu lệnh IF không làm gì cả.

Cấu trúc của câu lệnh IF… THEN trong PL/SQL như sau:

Cấu trúc IF ... THEN

IF condition_Dieu_kien  THEN
  
  -- Thuc thi cac lenh
    statements;
    
END IF;

Ví dụ sử dụng lệnh IF để lọc tìm nhân viên có mức lương lớn hơn 20 triệu như sau:

Ví dụ

DECLARE

v_Nhanvien_Salary NUMBER(15,2) := 30000000 ;

BEGIN
  
  IF v_Nhanvien_Salary > 20000000  THEN
   
      Dbms_Output.put_line(N'Nhân viên có lương lớn hơn > 20000000');
      
  END IF;

END;

 

2.Lệnh IF … THEN …ELSE trong PL/SQL

Nếu điều kiện đánh giá là đúng (True) thì các lệnh giữa THENELSE sẽ được thực thi.Ngược lại nếu điều kiện là không đúng (False) hoặc Null thì các lệnh giữa ELSEEND IF sẽ được thực thi.

Cấu trúc của câu lệnh IF … THEN …ELSE trong PL/SQL như sau:

Cấu trúc IF ... THEN ... ELSE

IF condition_Dieu_kien THEN
  
  -- Neu dieu kien la True thi thuc thi cac lenh
    statements;

ELSE
  
  -- Nguoc lai thuc thi cac lenh
    else_statements;
    
END IF;

Ví dụ sử dụng lệnh IF ...ELSE để đánh giá kết quả Học Lực của Học Sinh dựa vào Điểm như sau:

Ví dụ

DECLARE

v_Hocsinh_Diem NUMBER(2) := 9 ;
v_DanhGia_HocLuc VARCHAR2(100);

BEGIN
  
  IF v_Hocsinh_Diem >= 8  THEN
    
      v_DanhGia_HocLuc := N'Học Sinh Đạt Loại Giỏi';
      Dbms_Output.put_line(v_DanhGia_HocLuc);
      
  ELSE
        v_DanhGia_HocLuc := N'Học Sinh Không Đạt Loại Giỏi';
        Dbms_Output.put_line(v_DanhGia_HocLuc);
    
  END IF;

END;

 

3.IF … THEN … ELSIF trong PL/SQL

Nếu một điều kiện là đúng, các điều kiện tiếp theo khác không được đánh giá. Nếu không có điều kiện nào là đúng, các câu lệnh khác giữa ELSE ENDIF sẽ thực thi. Trong trường hợp bạn bỏ qua mệnh đề ELSE và không có điều kiện nào là TRUE thì IF THEN ELSIF không làm gì cả.

Cấu trúc của câu lệnh IF … THEN … ELSIF trong PL/SQL như sau:

Cấu trúc IF ... THEN ... ELSIF

IF condition_1 THEN
  
  statements_1
  
ELSIF condition_2 THEN
  
  statements_2
  
[ ELSIF condition_3 THEN
    statements_3
]
...
[ ELSE
    else_statements
]
END IF;

Ví dụ sử dụng lệnh IF ... THEN ... ELSIF để đánh giá phân loại Học Lực của Học Sinh dựa vào Điểm như sau:

Ví dụ

DECLARE

v_Hocsinh_Diem NUMBER(2) := 8 ;
v_DanhGia_HocLuc VARCHAR2(100);

BEGIN
  
  IF v_Hocsinh_Diem >= 8 AND v_Hocsinh_Diem <=10  THEN
    
      v_DanhGia_HocLuc := N'Học Sinh Đạt Loại Giỏi';
      Dbms_Output.put_line(v_DanhGia_HocLuc);
      
  ELSIF v_Hocsinh_Diem >= 7 AND v_Hocsinh_Diem < 8 THEN 
        v_DanhGia_HocLuc := N'Học Sinh Đạt Loại Khá';
        Dbms_Output.put_line(v_DanhGia_HocLuc);
        
  ELSIF v_Hocsinh_Diem >= 5 AND v_Hocsinh_Diem < 7 THEN
        v_DanhGia_HocLuc := N'Học Sinh Đạt Loại Trung Bình';
        Dbms_Output.put_line(v_DanhGia_HocLuc);
  
  ELSIF v_Hocsinh_Diem >= 0 AND v_Hocsinh_Diem < 5 THEN
        v_DanhGia_HocLuc := N'Học Sinh Đạt Loại Yếu';
        Dbms_Output.put_line(v_DanhGia_HocLuc);
  ELSE
        v_DanhGia_HocLuc := N'Điểm không nằm trong phạm vi đánh giá';
        Dbms_Output.put_line(v_DanhGia_HocLuc);
  END IF;

END;