Menggunakan Fungsi Baris Tunggal
Menggunakan fungsi baris tunggal untuk menyesuaikan keluaran
Oracle SQL menyediakan pustaka kaya fungsi bawaan yang dapat digunakan untuk berbagai tugas. Kemampuan penting dari suatu fungsi dapat berupa konversi kasus string, operasi in-string atau substring, perhitungan matematika pada data numerik, dan operasi tanggal pada nilai tipe tanggal. Fungsi SQL secara opsional mengambil argumen dari pengguna dan secara wajib mengembalikan nilai.
Pada kategori yang lebih luas, ada dua jenis fungsi: -
Single Row functions- Fungsi baris tunggal adalah fungsi yang bekerja pada satu baris dan mengembalikan satu keluaran per baris. Misalnya, fungsi konversi panjang dan kasus adalah fungsi baris tunggal.
Multiple Row functions - Beberapa fungsi baris bekerja pada kelompok baris dan mengembalikan satu hasil untuk set baris lengkap. Mereka juga dikenal sebagai Fungsi Grup.
Fungsi baris tunggal
Fungsi baris tunggal dapat berupa fungsi karakter, fungsi numerik, fungsi tanggal, dan fungsi konversi. Perhatikan bahwa fungsi ini digunakan untuk memanipulasi item data. Fungsi-fungsi ini memerlukan satu atau lebih argumen input dan beroperasi pada setiap baris, sehingga mengembalikan satu nilai output untuk setiap baris. Argumen bisa berupa kolom, literal atau ekspresi. Fungsi baris tunggal dapat digunakan dalam pernyataan SELECT, WHERE dan ORDER BY klausa. Fungsi baris tunggal bisa -
General functions- Biasanya berisi fungsi penanganan NULL. Fungsi di bawah kategori ini adalah NVL, NVL2, NULLIF, COALESCE, CASE, DECODE.
Case Conversion functions- Menerima input karakter dan mengembalikan nilai karakter. Fungsi di bawah kategori tersebut adalah UPPER, LOWER dan INITCAP.
Fungsi UPPER mengubah string menjadi huruf besar.
Fungsi LOWER mengubah string menjadi huruf kecil.
Fungsi INITCAP hanya mengubah huruf awal dari sebuah string menjadi huruf besar.
Character functions- Menerima input karakter dan mengembalikan angka atau nilai karakter. Fungsi di bawah kategori tersebut adalah CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM and REPLACE.
Fungsi CONCAT menggabungkan dua nilai string.
Fungsi LENGTH mengembalikan panjang string input.
Fungsi SUBSTR mengembalikan sebagian string dari titik awal tertentu ke titik akhir.
Fungsi INSTR mengembalikan posisi numerik dari karakter atau string dalam string tertentu.
Fungsi LPAD dan RPAD mengisi string yang diberikan hingga panjang tertentu dengan karakter tertentu.
Fungsi TRIM memotong input string dari awal atau akhir.
Fungsi REPLACE menggantikan karakter dari string input dengan karakter tertentu.
Date functions- Tanggal operasi aritmatika mengembalikan tanggal atau nilai numerik. Fungsi di bawah kategori tersebut adalah MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND dan TRUNC.
Fungsi MONTHS_BETWEEN mengembalikan hitungan bulan antara dua tanggal.
Fungsi ADD_MONTHS menambahkan 'n' jumlah bulan ke tanggal input.
Fungsi NEXT_DAY mengembalikan hari berikutnya dari tanggal yang ditentukan.
Fungsi LAST_DAY mengembalikan hari terakhir setiap bulan dari tanggal input.
Fungsi ROUND dan TRUNC digunakan untuk membulatkan dan memotong nilai tanggal.
Number functions- Menerima input numerik dan mengembalikan nilai numerik. Fungsi di bawah kategori tersebut adalah ROUND, TRUNC, dan MOD.
Fungsi ROUND dan TRUNC digunakan untuk membulatkan dan memotong nilai angka.
MOD digunakan untuk mengembalikan sisa operasi pembagian antara dua angka.
Ilustrasi
Fungsi umum
Kueri SELECT di bawah mendemonstrasikan penggunaan fungsi NVL.
SELECT first_name, last_name, salary, NVL (commission_pct,0)
FROM employees
WHERE rownum < 5;
FIRST_NAME LAST_NAME SALARY NVL(COMMISSION_PCT,0)
-------------------- ------------------------- ---------- ---------------------
Steven King 24000 0
Neena Kochhar 17000 0
Lex De Haan 17000 0
Alexander Hunold 9000 0
Fungsi Konversi Kasus
Kueri SELECT di bawah menunjukkan penggunaan fungsi konversi huruf besar.
SELECT UPPER (first_name), INITCAP (last_name), LOWER (job_id)
FROM employees
WHERE rownum < 5;
UPPER(FIRST_NAME) INITCAP(LAST_NAME) LOWER(JOB_
-------------------- ------------------------- ----------
STEVEN King ad_pres
NEENA Kochhar ad_vp
LEX De Haan ad_vp
ALEXANDER Hunold it_prog
Fungsi karakter
Kueri SELECT di bawah mendemonstrasikan penggunaan fungsi CONCAT untuk menggabungkan dua nilai string.
SELECT CONCAT (first_name, last_name)
FROM employees
WHERE rownum < 5;
CONCAT(FIRST_NAME,LAST_NAME)
--------------------------------
EllenAbel
SundarAnde
MozheAtkinson
DavidAustin
Kueri SELECT di bawah ini menunjukkan penggunaan fungsi SUBSTR dan INSTR. Fungsi SUBSTR mengembalikan porsi string input dari posisi 1 ke posisi 5. Fungsi INSTR mengembalikan posisi numerik karakter 'a' pada nama depan.
SELECT SUBSTR (first_name,1,5), INSTR (first_name,'a')
FROM employees
WHERE rownum < 5;
SUBST INSTR(FIRST_NAME,'A')
----- ---------------------
Ellen 0
Sunda 5
Mozhe 0
David 2
Query SELECT di bawah ini menunjukkan penggunaan LPAD dan RPAD untuk mencetak informasi karyawan dan pekerjaan.
SELECT RPAD(first_name,10,'_')||LPAD (job_id,15,'_')
FROM employees
WHERE rownum < 5;
RPAD(FIRST_NAME,10,'_')||
-------------------------
Steven____________AD_PRES
Neena_______________AD_VP
Lex_________________AD_VP
Alexander_________IT_PROG
Fungsi angka
Kueri PILIH di bawah ini menunjukkan penggunaan fungsi ROUND dan TRUNC.
SELECT ROUND (1372.472,1)
FROM dual;
ROUND(1372.472,1)
-----------------
1372.5
SELECT TRUNC (72183,-2)
FROM dual;
TRUNC(72183,-2)
---------------
72100
Operasi aritmatika tanggal
Kueri SELECT di bawah ini menunjukkan fungsi aritmatika tanggal di mana perbedaan tanggal perekrutan karyawan dan sysdate dilakukan.
SELECT employee_id, (sysdate - hire_date) Employment_days
FROM employees
WHERE rownum < 5;
EMPLOYEE_ID EMPLOYMENT_DAYS
----------- ---------------
100 3698.61877
101 2871.61877
102 4583.61877
103 2767.61877
Fungsi tanggal
Kueri SELECT di bawah menunjukkan penggunaan fungsi MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY dan LAST_DAY.
SELECT employee_id, MONTHS_BETWEEN (sysdate, hire_date) Employment_months
FROM employees
WHERE rownum < 5;
EMPLOYEE_ID EMPLOYMENT_MONTHS
----------- -----------------
100 121.504216
101 94.3751837
102 150.633248
103 90.9558289
SELECT ADD_MONTHS (sysdate, 5), NEXT_DAY (sysdate), LAST_DAY (sysdate)
FROM dual;
ADD_MONTH NEXT_DAY( LAST_DAY(
--------- --------- ---------
01-JAN-14 05-AUG-13 31-AUG-13