Senin, 14 November 2011

Lesson 3 : Menggunakan Fungsi Baris Tunggal untuk Menyesuaika Output

Setelah melengkapi pelajaran ini, kamu harus mampu untuk melakukan hal-hal berikut:

  • Mendeskripsikan berbagai jenis fungsi yang tersedia dalam SQL
  • Menggunakan fungsi karakter, angka, dan tanggal dalam pernyataan SELECT
  • Mendeskripsikan penggunaan fungsi konversi.

    Menggunakan Fungsi Manipulasi Kasus
    Menampilkan angka karyawan, nama, dan angka department untuk higgins karyawan.
    SELECT employee_id, last_name, department_id
    FROM   employees
    WHERE  last_name = 'higgins'; 
    SELECT employee_id, last_name, department_id
    FROM   employees
    WHERE  LOWER(last_name) = 'higgins';

    Menggunakan Fungsi Manipulasi Karakter
    SELECT employee_id, CONCAT(first_name, last_name) NAME,

           job_id, LENGTH (last_name),
           INSTR(last_name, 'a') "Contains 'a'?"
    FROM   employees
    WHERE  SUBSTR(job_id, 4) = 'REP';


    Menggunakan Fungsi ROUND
    SELECT ROUND(45.923,2), ROUND(45.923,0),
           ROUND(45.923,-1)
    FROM   DUAL;


    DUAL
    adalah suatu model tabel yang dapat digunakan untuk melihat hasil dari fungsi dan hitungan.

    Menggunakan Fungsi TRUNC
    SELECT ROUND(45.923,2), ROUND(45.923),

           ROUND(45.923,-1)
    FROM   DUAL;


    Menggunakan Fungsi MOD
    SELECT last_name, salary, MOD(salary, 5000)
    FROM   employees
    WHERE  job_id = 'SA_REP';

    Bekerja dengan Tanggal
    SELECT last_name, hire_date
    FROM   employees
    WHERE  hire_date < '01-FEB-88';



    Menggunakan Operator Aritmatika dengan Tanggal
    SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS
    FROM   employees
    WHERE  department_id = 90;

    SYSDATE adalah fungsi yang mengembalikan TANGGAL dan WAKTU.

    Menggunakan Fungsi To_Char dengan Tanggal

    SELECT last_name,
           TO_CHAR(hire_date, 'fmDD Month YYYY')
           AS HIREDATE
    FROM   employees;

    Menggunakan Fungsi To_Char dengan Angka
    SELECT TO_CHAR(salary, '$99,999.00') SALARY
    FROM   employees
    WHERE  last_name = 'Ernst';


    Menggunakan Fungsi To_Number dan To_Date
    Contoh dari Format Tanggal RR
    SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')

    FROM  employees
    WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR');

    Fungsi Cadangan
    SELECT last_name,
      UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US'))
    FROM   employees
    WHERE  department_id = 60;

    Menggunakan Fungsi NVL
    SELECT last_name, salary, NVL(commission_pct, 0),
       (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL
    FROM employees;

    Menggunakan Fungsi NVL2
    SELECT last_name,  salary, commission_pct,
           NVL2(commission_pct,
                'SAL+COMM', 'SAL') income
    FROM   employees WHERE department_id IN (50, 80);

    Menggunakan Fungsi NULLIF
    SELECT first_name, LENGTH(first_name) "expr1",

           last_name,  LENGTH(last_name)  "expr2",
           NULLIF(LENGTH(first_name), LENGTH(last_name)) result
    FROM   employees;


    Menggunakan Fungsi COALESCE 
    SELECT last_name,
           COALESCE(manager_id,commission_pct, -1) comm
    FROM   employees
    ORDER BY commission_pct;

    Menggunakan Ekspresi CASE
    SELECT last_name, job_id, salary,
           CASE job_id WHEN 'IT_PROG'  THEN  1.10*salary
                       WHEN 'ST_CLERK' THEN  1.15*salary
                       WHEN 'SA_REP'   THEN  1.20*salary
           ELSE      salary END     "REVISED_SALARY"
    FROM   employees;

    Menggunakan Fungsi DECODE
    SELECT last_name, job_id, salary,
           DECODE(job_id, 'IT_PROG',  1.10*salary,
                          'ST_CLERK', 1.15*salary,
                          'SA_REP',   1.20*salary,
                  salary)
           REVISED_SALARY
    FROM   employees;

    Menampilkan tarif pajak yang dapat diterapkan pada masing-masing karyawan.
    SELECT last_name, salary,
           DECODE (TRUNC(salary/2000, 0),
                             0, 0.00,
                             1, 0.09,
                             2, 0.20,
                             3, 0.30,
                             4, 0.40,
                             5, 0.42,
                             6, 0.44,
                                0.45) TAX_RATE
    FROM   employees
    WHERE  department_id = 80;






















Tidak ada komentar: