Friday, October 13, 2017

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

Popular Posts