Fungsi Single Row.
COALESCE
Fungsi coalesce mengembalikan nilai bukan null pertama dalam daftar ekspresi.
Contoh : Query berikut mengembalikan gaji + komisi, jika komisi adalah nol maka mengembalikan gaji, jika gaji juga nihil maka imbal 1000.
select empno,ename,salary,comm,coalesce(salary+comm,salary,1000) “Net Sal” from employee;
ENAME SALARY COMM NET SAL
----- ------ ---- -------
SMITH 1000 100 1100
SAMI 3000 3000
SCOTT 1000
RAVI 200 1000
DECODE
DECODE(expr, searchvalue1, result1,searchvalue2,result2,..., defaultvalue)
Fungsi decode membandingkan expr dengan nilai pencarian satu per satu. Jika expr tidak sesuai dengan nilai pencarian maka akan mengembalikan nilai default. Jika nilai default dihilangkan maka return null.
Contoh : Permintaan berikut mengembalikan nama departemen sesuai deptno. Jika deptno tidak sesuai dengan nilai pencarian maka kembali "Unknown Department"
select decode(deptno,10,'Sales',20,'Accounts,30,'Production,
40,'R&D','Unknown Dept') As DeptName from employee;
DEPTNAME
----------
Sales
Accounts
Unknown Dept.
Accounts
Production
Sales
R&D
Unknown Dept.
GREATEST
GREATEST(expr1, expr2, expr3,expr4...)
Mengembalikan expr terbesar dari daftar expr. Contoh :
Contoh 1 :
select greatest(10,20,50,20,30) from dual;
GREATEST
--------
50
Contoh 2 :
select greatest('SAMI','SCOTT','RAVI','SMITH','TANYA') from dual;
GREATEST
--------
TANYA
LEAST
LEAST(expr1, expr2, expr3,expr4...)
Hal ini simillar untuk terbesar. Ini mengembalikan expr paling sedikit dari daftar ekspresi, contoh :
Contoh 1 :
select least(10,20,50,20,30) from dual;
LEAST
--------
10
Contoh 2 :
select least('SAMI','SCOTT','RAVI','SMITH','TANYA') from dual;
LEAST
--------
RAVI
NVL
NVL2(expr1,expr2)
Fungsi ini sering digunakan untuk memeriksa nilai null. Ini mengembalikan expr2 jika expr1 adalah null, jika tidak, akan menghasilkan expr1.
Contoh : Query berikut mengembalikan komisi jika komisi null kemudian mengembalikan 'Not Applicable'.
Select ename,nvl(comm,'Not Applicable') “Comm” from dual;
ENAME COMM
------ ----
Scott 300
Tiger 450
Sami Not Applicable
Ravi 300
Tanya Not Applicable
NVL2
NVL2(expr1,expr2,expr3)
NVL2 mengembalikan expr2 jika expr1 tidak null, jika tidak, akan kembali expr3.
Contoh : Permintaan berikut mengembalikan gaji + comm jika comm tidak null, jika tidak hanya mengembalikan gaji.
select salary,comm,nvl2(comm,salary+comm,salary) “Income” from employee;
SALARY COMM INCOME
------ ---- ------
1000 100 1100
2000 2000
2300 200 2500
3400 3400
------ ---- ------
1000 100 1100
2000 2000
2300 200 2500
3400 3400
NULLIF
NULLIF(expr1, expr2)
Nullif membandingkan expr1 dengan expr2. Jika mereka sama maka mengembalikan null, jika tidak, return expr1.
Contoh : Permintaan berikut menunjukkan pekerjaan lama dari karyawan yang telah mengubah pekerjaan mereka di perusahaan dengan membandingkan pekerjaan saat ini dengan pekerjaan lama di tabel oldemp.
Select ename,nullif(e.job,o.job) “Old Job” from employeee, oldemployee o where e.empno=o.empno;
ENAME OLD JOB
----- -------
SMITH CLERK
SAMI
SCOTT MANAGER
UID
Mengembalikan ID sesi pengguna saat ini.
Contoh
select uid from dual;
UID
----
20
USER
Mengembalikan nama pengguna dari pengguna saat ini masuk
select user from dual;
USER
---------
SCOTT
SYS_CONTEXT
SYS_CONTEXT mengembalikan nilai parameter yang terkait dengan ruang kelas konteks. Anda dapat menggunakan fungsi ini di kedua pernyataan SQL dan PL / SQL.
CONTOH : Permintaan berikut mengembalikan nama pengguna dari pengguna saat ini.
Select sys_context('USERENV','SESSION_USER') “Username” from dual;
USERNAME
---------
SCOTT
Mirip dengan parameter SESSION_USER untuk namespace USERENV parameter penting lainnya adalah :
ISDBA: Untuk memeriksa apakah pengguna saat ini memiliki hak istimewa DBA atau tidak.
PEMBAWA ACARA: Mengembalikan nama mesin induk tempat klien terhubung.
INSTANSI: Contoh nomor identifikasi instance saat ini
IP_ADDRESS: alamat IP mesin tempat klien terhubung.
DB_NAME: Nama database seperti yang ditentukan dalam parameter inisialisasi DB_NAME
VSIZE
VSIZE(expr)
Mengembalikan representasi internal expr dalam bytes.
Contoh : Query berikut mengembalikan representasi idaman dalam bytes.
select ename,vsize(ename) as Bytes from employee;
ENAME BYTES
------ ------
SCOTT 5
SAMI 4
RAVI 4
KIRAN 5
Sumber : Disini
Semoga bermanfaat.
Best Regards
0 komentar:
Posting Komentar