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