Pengantar PL / SQL IF Statement
Pernyataan SQL PL / SQL memungkinkan kamu untuk menjalankan urutan pernyataan secara kondisional. Pernyataan IF mengevaluasi suatu kondisi.
Kondisinya bisa menjadi sesuatu yang mengevaluasi nilai logis dari true atau false seperti perbandingan ekspresi atau kombinasi dari beberapa ekspresi perbandingan. kamu dapat membandingkan dua variabel jenis yang sama atau tipe convertible. Kamu bisa membandingkan dua literal. Selain itu, variabel Boolean dapat digunakan sebagai suatu kondisi.
Pernyataan PL / SQL IF memiliki tiga bentuk: IF-THEN, IF-THEN-ELSE dan IF-THEN-ELSIF.
Pernyataan PL / SQL IF-THEN
Berikut ini menggambarkan pernyataan IF-THEN:
IF condition THEN
sequence_of_statements;
END IF;
Ini adalah bentuk pernyataan IF yang paling sederhana. Jika kondisi dievaluasi benar, urutan pernyataan akan dijalankan. Jika kondisinya salah atau NULL, pernyataan IF tidak melakukan apa-apa. Perhatikan bahwa END IF digunakan untuk menutup pernyataan IF, bukan ENDIF.
Contoh berikut menunjukkan pernyataan PL / SQL IF. Ini memperbarui gaji karyawan sampai tingkat menengah jika gaji karyawan lebih rendah daripada mid-range.
DECLARE
n_min_salary NUMBER(6,0);
n_max_salary NUMBER(6,0);
n_mid_salary NUMBER(6,2);
n_salary EMPLOYEES.SALARY%TYPE;
n_emp_id EMPLOYEES.EMPLOYEE_ID%TYPE := 200;
BEGIN
-- get salary range of the employee
-- based on job
SELECT min_salary,
max_salary
INTO n_min_salary,
n_max_salary
FROM JOBS
WHERE JOB_ID = (SELECT JOB_ID
FROM EMPLOYEES
WHERE EMPLOYEE_ID = n_emp_id);
-- calculate mid-range
n_mid_salary := (n_min_salary + n_max_salary) / 2;
-- get salary of the given employee
SELECT salary
INTO n_salary
FROM employees
WHERE employee_id = n_emp_id;
-- update employee's salary if it is lower than
-- the mid range
IF n_salary < n_mid_salary THEN
UPDATE employees
SET salary = n_mid_salary
WHERE employee_id = n_emp_id;
END IF;
END;
Pernyataan PL / SQL IF-THEN-ELSE
Ini adalah bentuk pernyataan IF yang kedua. Klausa ELSE ditambahkan dengan urutan pernyataan alternatif. Berikut adalah sintaks dari pernyataan IF-ELSE.
IF condition THEN
sequence_of_if_statements;
ELSE
sequence_of_else_statements;
END IF;
Jika kondisinya NULL atau false, urutan pernyataan lain akan dieksekusi.
Misalkan kamu ingin menaikkan gaji untuk seorang karyawan ke mid-range jika gaji saat ini lebih rendah dari pada mid-range pekerjaan jika tidak, tingkatkan sebesar 5%. Dalam kasus ini, Anda bisa mengganti kode di atas dengan menggunakan pernyataan PL / SQL IF-THEN-ELSE sebagai berikut:
-- update employee's salary if it is lower than
-- the mid range, otherwise increase 5%
IF n_salary < n_mid_salary THEN
UPDATE employees
SET salary = n_mid_salary
WHERE employee_id = n_emp_id;
ELSE
UPDATE employees
SET salary = salary + salary * 5 /100
WHERE employee_id = n_emp_id;
END IF;
Pernyataan PL / SQL IF-THEN-ELSIF
PL / SQL mendukung pernyataan IF-THEN-ELSIF untuk memungkinkanmu mengeksekusi urutan pernyataan berdasarkan beberapa kondisi.
Sintaks PL / SQL IF-THEN-ELSIF adalah sebagai berikut:
IF condition1 THEN
sequence_of_statements1
ELSIF condition2 THEN
sequence_of_statements2
ELSE
sequence_of_statements3
END IF;
Perhatikan bahwa pernyataan IF dapat memiliki sejumlah klausa ELSIF. Jika kondisi pertama salah atau NULL, kondisi kedua di ELSIF diperiksa dan seterusnya. Jika semua kondisi NULL atau false, urutan pernyataan dalam klausa ELSE akan dijalankan.
Perhatikan bahwa klausa ELSE terakhir bersifat opsional, jadi jika bisa menghilangkannya. Jika kondisi dari atas ke bawah benar, urutan pernyataan yang sesuai akan dijalankan.
Contoh berikut menggambarkan pernyataan PL / SQL IF-THEN-ELSIF untuk mencetak pesan yang sesuai saat gaji karyawan lebih tinggi daripada mid-range, lebih rendah dari mid-range atau sama dengan mid-range.
DECLARE
n_min_salary NUMBER(6,0);
n_max_salary NUMBER(6,0);
n_mid_salary NUMBER(6,2);
n_salary EMPLOYEES.SALARY%TYPE;
n_emp_id EMPLOYEES.EMPLOYEE_ID%TYPE := 200;
BEGIN
-- get salary range of the employee
-- based on job
SELECT min_salary,
max_salary
INTO n_min_salary,
n_max_salary
FROM JOBS
WHERE JOB_ID = (SELECT JOB_ID
FROM EMPLOYEES
WHERE EMPLOYEE_ID = n_emp_id);
-- calculate mid-range
n_mid_salary := (n_min_salary + n_max_salary) / 2;
-- get salary of the given employee
SELECT salary
INTO n_salary
FROM employees
WHERE employee_id = n_emp_id;
-- update employee's salary if it is lower than
-- the mid range, otherwise increase 5%
IF n_salary > n_mid_salary THEN
DBMS_OUTPUT.PUT_LINE('Employee ' || TO_CHAR(n_emp_id) ||
' has salary $' || TO_CHAR(n_salary) ||
' higher than mid-range $' || TO_CHAR(n_mid_salary));
ELSIF n_salary < n_mid_salary THEN
DBMS_OUTPUT.PUT_LINE('Employee ' || TO_CHAR(n_emp_id) ||
' has salary $' || TO_CHAR(n_salary) ||
' lower than mid-range $' || TO_CHAR(n_mid_salary));
ELSE
DBMS_OUTPUT.PUT_LINE('Employee ' || TO_CHAR(n_emp_id) ||
' has salary $' || TO_CHAR(n_salary) ||
' equal to mid-range $' || TO_CHAR(n_mid_salary));
END IF;
END;
Pada tutorial ini, kamu telah belajar bagaimana menggunakan berbagai bentuk pernyataan PL / SQL IF termasuk pernyataan IF-THEN IF-THEN-ELSE dan IF-THEN-ELSIF.
sumber dan artikel asli : http://www.plsqltutorial.com/
0 comments:
Post a Comment