Resume 2 :
·
Function
di oracle dibagi menjadi 2 yaitu:
1.
Single
row function
Mengembalikan
1 baris dari query tersebut.
Berdasarkan
fungsinya, single row function dibagi menjadi :
-
Fungsi
untuk karakter
LOWER
: menjadikan huruf kecil
UPPER
: menjadikan huruf kapital
INITCAP : Awal kata menjadi huruf capital
CONCAT : Menggabungkan karakter
SUBSTR :Mengambil beberapa karakter
LENGTH :Menampilkan jumlah karakter
INSTR : Menampilkan posisi substring
TRIM : Menghilangkan beberapa
karakter
REPLACE : Mengganti karakter tertentu
Example:
NO
|
QUERY
|
OUTPUT
|
1
|
SELECT
ename "Asli",
lower(ename)
"Lower",
initcap(ename)
"Initcap"
FROM emp
WHERE
deptno=20;
|
Asli Lower Initcap
---------- ---------- ---------
SMITH smith
Smith
JONES jones
Jones
SCOTT scott
Scott
ADAMS adams
Adams
FORD
ford Ford
|
2
|
SELECT
ename "Data", SUBSTR(ename,-4,2)
FROM
emp;
|
Data SU
---------- --
SMITH MI
ALLEN LL
WARD WA
JONES ON
|
3
|
SELECT
concat(ename,sal) concat1,
ename||sal
concat2
FROM
emp;
|
CONCAT1 CONCAT2
--------------- -------------
SMITH800 SMITH800
ALLEN1600 ALLEN1600
WARD1250 WARD1250
JONES2975 JONES2975
|
4
|
SELECT ename "Data",
length(ename) "Jlh Huruf"
FROM emp;
|
Data Jlh Huruf
---------- ----------
SMITH 5
ALLEN 5
WARD 4
JONES 5
|
5
|
SELECT
ename "Data", INSTR(ename,'A') "Posisi A"
FROM
emp;
|
Data Posisi A
---------- ----------
SMITH 0
ALLEN 1
WARD 2
JONES 0
MARTIN 2
BLAKE 3
CLARK 3
SCOTT 0
KING 0
TURNER 0
ADAMS 1
|
6
|
SELECT
'124121321' "Data",
trim(1
FROM 124121321) "Trim"
FROM
dual;
|
Data Trim
--------- -------
124121321 2412132
|
7
|
SELECT 'JACK and JUE' "Data",
replace('JACK and JUE','J','BL')
"Replace"
FROM dual
|
Data Replace
-------- ---- --------------
JACK and JUE BLACK and BLUE
|
-
Fungsi
untuk number
ROUND
:Pembulatan ke atas
TRUNC :Pembulatan ke bawah
No
|
Query
|
Output
|
1
|
SELECT
round(49.46745,2),
round(49.46745,1),
round(49.46745,0)
FROM
dual;
|
ROUND(49.46745,2) ROUND(49.46745,1) ROUND(49.46745,0)
----------------- ------
--------------------- ----------------- -----------------
49.47 49.5 49
|
2
|
SELECT trunc(49.46745,2),
trunc(49.46745,1),
trunc(49.46745,0)
FROM dual;
|
TRUNC(49.46745,2) TRUNC(49.46745,1) TRUNC(49.46745,0)
----------------- ----------------- ---------------------------------------------
49.46 49.4 49
|
-
Fungsi
date
MONTHS_BETWEEN : Menghasilkan jarak antara dua tanggal dalam satuan
bulan.
ADD_MONTHS :Menambahkan
number ke date dalam satuan bulan
Aritmatik
dengan Date
---------------------
Date
+ Number = Date
DAte
- Number = Date
Date
- Date = Number
Date + Date = Error
No
|
Query
|
Output
|
1
|
SELECT
MONTHS_BETWEEN ('01-JUL-2011','01-SEP-2010') FROM dual;
|
MONTHS_BETWEEN('01-JUL-2011','01-SEP-2010')
-------------------------------------------
10
|
2
|
SELECT
add_months('21-JAN-11',7) FROM dual;
|
ADD_MONTH
---------
21-AUG-11
|
3
|
SELECT
sysdate - 1 "Kemarin",
sysdate
"Hari ini",
sysdate
+ 1 "Besok"
FROM
dual;
|
Kemarin Hari ini Besok
--------- ---------
---------
18-JUL-11 19-JUL-11
20-JUL-11
|
|
|
|
-
Fungsi untuk konversi tipe data
No
|
Query
|
Output
|
1
|
SELECT empno, ename,
substr(lower(ename),1,4)||empno||
'@klik-oracle.com' as
"Email"
FROM emp;
|
EMPNO ENAME
Email
----- ----------
----------------------
7369 SMITH smit7369@klik-oracle.com
7499 ALLEN alle7499@klik-oracle.com
7521 WARD
ward7521@klik-oracle.com
7566 JONES
jone7566@klik-oracle.com
|
-
Fungsi general
NVL(x,y) : Jika
nilai x null munculkan y, x dan
y tipe datanya harus sama
NVL2(x,y,z) : Jika
x tidak null maka munculkan y Jika x null munculkan z
NULLIF(x,y) : Jika
x sama dengan y hasilnya null Jika x tidak sama dengan y munculkan x
No
|
Query
|
Output
|
1
|
SELECT
ename, comm, NVL(comm,10)
FROM
emp;
|
ENAME COMM NVL(COMM,10)
---------- ---------- ------------
SMITH 10
ALLEN 300 300
WARD 500 500
JONES 10
MARTIN 1400 1400
BLAKE 10
|
2
|
SELECT
ename,
comm,
NVL2(comm,'Ada
Komisi','Tidak ada komisi') as "Keterangan"
FROM
emp;
|
ENAME COMM
Keterangan
---------- ----------
----------------
SMITH Tidak ada komisi
ALLEN 300
Ada Komisi
WARD 500
Ada Komisi
JONES Tidak ada komisi
MARTIN 1400
Ada Komisi
BLAKE Tidak ada komisi
|
3
|
SELECT length(ename)
as "X",
length(sal) as
"Y",
NULLIF(length(ename),
length(sal)) as "NULLIF"
FROM emp;
|
X Y NULLIF
------- ----------
----------
5 3 5
5 4 5
4 4
5 4 5
6 4 6
5 4 5
|
2. Multiple (group function)
masuk banyak keluar satu