iklan banner

Penggunaan Character Function di Oracle

SQL adalah suatu query yang biasa digunakan dalam sistem database, dimana tiap-tiap query mempunyai fungsi-fungsi tertentu. saya akan memberikan beberapa contoh dari character function, number function, date function, cartesian produc, Group by clause, dan having clause.
Hanya sekedar ingin sharing tentang contoh-contoh penggunaan beberapa query pada SQL.


Single Row Functions
1. CHARACTER FUNCTIONS
a. Case Manipulation Functions (UPPER, LOWER, INITCAP)
1) Berikut query untuk mengubah semua huruf yang ada pada kolom jabatan (Tabel Jabatan) menjadi huruf kapital.
SQL> select kd_jabatan, UPPER(jabatan)
2 from jabatan;
KD_JABATAN UPPER(JABATAN)
---------- --------------
2001 MANAGER
2002 DIREKTUR
2003 SEKRETARIS
2004 HRD
2005 SPVISIOR
2) Berikut query untuk mengubah huruf yang ada pada kolom golongan pada tabel golongan menjadi huruf kecil semua.
SQL> select kd_gol, LOWER(golongan)
2 from golongan;
KD_GOL LOWER(GOLONGAN)
------- ---------------
3004 d
3005 e
3001 a
3002 b
3003 c
3) Berikut query untuk mencari dan mengubah huruf menjadi huruf kapital pada kolom kota di tabel calon_pegawai yang berada di kota Solo.
select kd_pelamar, nama_pelamar, UPPER(kota)
2 from calon_pegawai
3 where kota='Solo';
KD_PELAMAR NAMA_PELAMAR UPPER(KOTA)
---------- -------------------- --------------------
9003 Kurniawan SOLO
9009 Nana SOLO
4) Berikut query untuk mengubah huruf pertama pada tabel karyawan(kolom nama) menjadi huruf kapital dan yang berstatus Kawin saja.
SQL> select INITCAP(nama_karyawan), statuskaryawan
2 from karyawan
3 where statuskaryawan='Kawin';
INITCAP(NAMA_KARYAWAN) STATUSKARYAWAN
---------------------- --------------------
Juniarko Kawin
Budiman Kawin
Nano Kawin
Maruko Kawin
Sinta Haruno Kawin
Sukirman Kawin
Bony Bolkiah Kawin
Dinda Kumala Kawin
Nona Kawin
Marini Julfikar Kawin
Dona Dono Kawin
11 rows selected
5) Berikut query untuk mencari dan mengubah huruf menjadi huruf kecil pada kolom kota di tabel calon_pegawai yang berada di kota Sidoarjo.
SQL> select nama_pelamar, LOWER(kota)
2 from calon_pegawai
3 where kota='Sidoarjo';
NAMA_PELAMAR LOWER(KOTA)
-------------------- --------------------
Inneke sidoarjo
Bambang sidoarjo
Septian sidoarjo
  1. Character Manipulation Functions (CONCAT, SUBSTR, LENGTH, INSTR, TRIM, REPLACE, LPAD)
1) Berikut query untuk menggabungkan nama dan golongan darah pada tabel karyawan yang hanya mempunyai golongan darah ”O” dan hasilnya diletakkan pada nama kolom ”Nama+Gol_Darah”.
SQL> select CONCAT(nama_karyawan, gol_darah) "Nama+Gol_Darah"
2 from karyawan
3 where gol_darah='O';
Nama+Gol_Darah
-----------------
Beni SutiosoO
SumantoO
Bony BolkiahO
Dona DonoO
2) Berikut query untuk menampilkan dan me-Replace atau mengganti kota ”Sidoarjo” menjadi kota ”Semarang” pada tabel calon_pegawai dan yang ditampilkan hanya kota ”Sidoarjo”.
SQL> select nama_pelamar, REPLACE(kota, 'Sidoarjo', 'Semarang')
2 from calon_pegawai
3 where kota='Sidoarjo'
4 ;
NAMA_PELAMAR REPLACE(KOTA,'SIDOARJO','SEMAR
-------------------- --------------------------------------------------------------------------------
Inneke Semarang
Bambang Semarang
Septian Semarang
3) Berikut query untuk menghitung panjang huruf jabatan pada tabel jabatan.
SQL> select kd_jabatan, jabatan, LENGTH(jabatan) "Jumlah Huruf"
2 from jabatan
3 ;
KD_JABATAN JABATAN Jumlah Huruf
---------- ---------- ------------
2001 Manager 7
2002 Direktur 8
2003 Sekretaris 10
2004 HRD 3
2005 SPvisior 8
4) Berikut query untung menghilangkan huruf ”S” pada kata ”Solo” pada tabel calon_pegawai.
SQL> select nama_pelamar, TRIM('S' FROM kota)
2 from calon_pegawai
3 where kota='Solo';
NAMA_PELAMAR TRIM('S'FROMKOTA)
-------------------- --------------------
Kurniawan olo
Nana olo
5) Berikut query untuk menampilkan dan menyingkat (menghapus huruf ke-4 sampai huruf terakhir) jabatan pada tabel jabatan.
SQL> select kd_jabatan, SUBSTR(jabatan, 1,3) "jab"
2 from jabatan;
KD_JABATAN jab
---------- ---
2001 Man
2002 Dir
2003 Sek
2004 HRD
2005 SPv
2. NUMBER FUNCTIONS
1) Berikut menampilkan hasil Modulus dari gaji pada tabel golongan (MOD 70000).
SQL> select golongan, MOD(gaji, 70000)
2 from golongan;
GOLONGAN MOD(GAJI,70000)
--------------- ---------------
D 60000
E 40000
A 60000
B 20000
C 30000
2) Berikut query untuk menampilkan pembulatan keatas dari gaji dibagi 7 dengan satu decimal dibelakang koma.
GOLONGAN ROUND(GAJI/7,1)
--------------- ---------------
D 428571.4
E 285714.3
A 1428571.4
B 1142857.1
C 714285.7
3) Berikut query untuk menampilkan pembulatan kebawah dari gaji dibagi 6 dengan tanpa angka decimal dibelakang koma.
SQL> select kd_gol, TRUNC(gaji/6, 0)
2 from golongan;
KD_GOL TRUNC(GAJI/6,0)
------- ---------------
3004 500000
3005 333333
3001 1666666
3002 1333333
3003 833333
3. DATE FUNCTIONS
1) Berikut query untuk menampilkan banyaknya bulan diantara tanggal system (hari ini) dengan tanggal lahir para calon pegawai pada tabel calon_pegawai.
SQL> select MONTHS_BETWEEN(SYSDATE, tanggal_lahir)
2 from calon_pegawai;
MONTHS_BETWEEN(SYSDATE,TANGGAL
------------------------------
312.194041965352
420.161783900836
351.12952583632
293.032751642772
245.258558094385
240.12952583632
265.097267771804
234.96823551374
265.161783900836
273
10 rows selected
2) Berikut query untuk menampilkan data tanggal lahir calon pegawai yang hanya berada di kota Solo setelah ditambah 6 bulan.
SQL> select kd_pelamar, ADD_MONTHS(tanggal_lahir, 6)
2 from calon_pegawai
3 where kota='Solo';
KD_PELAMAR ADD_MONTHS(TANGGAL_LAHIR,6)
---------- ---------------------------
9003 6/3/1981
9009 8/2/1988
3) Berikut query untuk menampilkan tanggal hari minggu selanjutnya setelah calon pegawai lahir dengan syarat hanya pada kota Solo.
KD_PELAMAR NEXT_DAY(TANGGAL_LAHIR,'SUNDAY
---------- ------------------------------
9003 12/7/1980
9009 2/7/1988
4) Berikut query untuk menampilkan tanggal terakhir pada bulan februari pada tahun 2012.
SQL> select LAST_DAY('01-Feb-2012') from dual;
LAST_DAY('01-FEB-2012')
-----------------------
2/29/2012
4. CONVERSION FUNCTIONS
1) Contoh Query untuk menkonversi DATE menjadi CHAR pada tanggal lahir calon pelamar di tabel calon_pegawai.
SQL> select TO_CHAR(tanggal_lahir, 'fmDD Month YYYY') from calon_pegawai;
TO_CHAR(TANGGAL_LAHIR,'FMDDMON
------------------------------
1 March 1984
2 March 1975
3 December 1980
6 October 1985
30 September 1989
3 March 1990
4 February 1988
8 August 1990
2 February 1988
7 June 1987
10 rows selected
5. CARTESIAN PRODUCT
Cartesian Product terjadi ketika kondisi join tidak diberikan dan kondisi join tidak valid sehingga semua row pada tiap-tiap tabel ditampilkan.
Contoh :
Berikut query untuk menampilkan Cartesian Product dari tabel jabatan dan tabel golongan :
SQL> select kd_jabatan, jabatan, kd_gol, golongan
2 from jabatan, golongan;
KD_JABATAN JABATAN KD_GOL GOLONGAN
---------- ---------- ------- ---------------
2001 Manager 3004 D
2001 Manager 3005 E
2001 Manager 3001 A
2001 Manager 3002 B
2001 Manager 3003 C
2002 Direktur 3004 D
2002 Direktur 3005 E
2002 Direktur 3001 A
2002 Direktur 3002 B
2002 Direktur 3003 C
2003 Sekretaris 3004 D
2003 Sekretaris 3005 E
2003 Sekretaris 3001 A
2003 Sekretaris 3002 B
2003 Sekretaris 3003 C
2004 HRD 3004 D
2004 HRD 3005 E
2004 HRD 3001 A
2004 HRD 3002 B
2004 HRD 3003 C
KD_JABATAN JABATAN KD_GOL GOLONGAN
---------- ---------- ------- ---------------
2005 SPvisior 3004 D
2005 SPvisior 3005 E
2005 SPvisior 3001 A
2005 SPvisior 3002 B
2005 SPvisior 3003 C
25 rows selected
6. JOIN TABLE USING SQL
1) Berikut contoh query untuk menampilkan kode pelamar, nama pelamar dan nilai pelamar dalam psikotes dimana dalam tabel psikotes tidak ada nama dan harus mengambil dari tabel calon_pegawai.
SQL> select a.kd_pelamar, a.nama_pelamar, b.nilai_psikotes
2 from calon_pegawai a, psikotes b
3 where a.kd_pelamar=b.kd_pelamar
4 ;
KD_PELAMAR NAMA_PELAMAR NILAI_PSIKOTES
---------- -------------------- --------------
9001 koko ardiasyah 90
9002 bagus kurniawan 88
9003 Kurniawan 50
9004 Tania 70
2) Berikut contoh query untuk menampilkan kode pelamar, nama pelamar dan nilai pelamar yang memiliki nilai psikotes lebih besar sama dengan 70 dalam tes psikotes dimana dalam tabel psikotes tidak ada nama dan harus mengambil dari tabel calon_pegawai.
SQL> select a.kd_pelamar, a.nama_pelamar, b.nilai_psikotes
2 from calon_pegawai a, psikotes b
3 where a.kd_pelamar=b.kd_pelamar
4 and b.nilai_psikotes >=70;
KD_PELAMAR NAMA_PELAMAR NILAI_PSIKOTES
---------- -------------------- --------------
9001 koko ardiasyah 90
9002 bagus kurniawan 88
9004 Tania 70
3) Berikut query untuk mengetahui nama ruangan dimana peserta mengikuti tes psikotes.
SQL> select a.kd_pelamar, b.kd_ruangan, b.nama_ruangan
2 from psikotes a, ruangan b
3 where b.kd_ruangan=a.kd_ruangan;
KD_PELAMAR KD_RUANGAN NAMA_RUANGAN
----------- ---------- ------------
9001 301 Melati
9002 303 Anggrek
9003 303 Anggrek
9004 302 Mawar
4) Berikut query untuk menampilkan siapa saja yang mengikuti pelatihan(dari tabel karyawan dan tabel pelatihan).
SQL> select a.nik, a.nama_karyawan
2 from karyawan a, pelatihan b
3 where a.nik=b.nik;
NIK NAMA_KARYAWAN
------- ---------------
1017 Kadir Doyok
1018 Marini Julfikar
1019 Parmin Parman
1020 Dona Dono
5) Berikut query untuk menampilkan siapa saja yang mengikuti pelatihan(dari tabel karyawan dan tabel pelatihan) dan mendapat hasil atau nilai di atas 80.
SQL> select a.nik, a.nama_karyawan
2 from karyawan a, pelatihan b
3 where a.nik=b.nik
4 and b.hasil > 80;
NIK NAMA_KARYAWAN
------- ---------------
1017 Kadir Doyok
1020 Dona Dono
6) Berikut query untuk menampilkan nama calon egawai yang diwawancarai dan kode ruangannya (dari Tabel calon_pegawai dan Tabel wawancara).
SQL> select a.nama_pelamar, b.kd_ruangan
2 from calon_pegawai a, wawancara b
3 where a.kd_pelamar=b.kd_pelamar;
NAMA_PELAMAR KD_RUANGAN
-------------------- ----------
Nana 301
Bambang 304
Jatmiko 305
7) Berikut query untuk menampilkan jabatan dari karyawan yang bergolongan darah ’O’(Tabel karyawan dan Tabel Jabatan).
SQL> select a.NIK, a.nama_karyawan, b.jabatan, a.gol_darah
2 from karyawan a, jabatan b
3 where a.kd_jabatan=b.kd_jabatan
4 and a.gol_darah='O';
NIK NAMA_KARYAWAN JABATAN GOL_DARAH
------- --------------- ---------- ---------
1004 Beni Sutioso Direktur O
1010 Sumanto SPvisior O
1012 Bony Bolkiah HRD O
1020 Dona Dono SPvisior O
8) Berikut query untuk menampilkan golongan dari karyawan yang mempunyai golongan darah ’AB’.
SQL> select a.NIK, a.nama_karyawan, b.golongan, a.gol_darah
2 from karyawan a, golongan b
3 where a.kd_gol=b.kd_gol
4 and a.gol_darah='AB';
NIK NAMA_KARYAWAN GOLONGAN GOL_DARAH
------- --------------- --------------- ---------
1003 Sintia B AB
9) Berikut query untuk menampilkan golongan karyawan yang sudah menikah.
SQL> select a.NIK, a.nama_karyawan, b.golongan, a.statuskaryawan
2 from karyawan a, golongan b
3 where a.kd_gol=b.kd_gol
4 and a.statuskaryawan='Kawin';
NIK NAMA_KARYAWAN GOLONGAN STATUSKARYAWAN
------- --------------- --------------- --------------------
1001 Juniarko A Kawin
1002 Budiman A Kawin
1005 Nano D Kawin
1008 Maruko E Kawin
1009 Sinta Haruno E Kawin
1011 Sukirman D Kawin
1012 Bony Bolkiah D Kawin
1014 Dinda Kumala B Kawin
1015 Nona E Kawin
1018 Marini Julfikar E Kawin
1020 Dona Dono D Kawin
11 rows selected
10) Berikut query untuk menampilkan jabatan karyawan yang berjenis kelamin ’P’ atau perempuan.
SQL> select a.NIK, a.nama_karyawan, b.jabatan, a.jeniskelaminkaryawan
2 from karyawan a, jabatan b
3 where a.kd_jabatan=b.kd_jabatan
4 and a.jeniskelaminkaryawan='P';
NIK NAMA_KARYAWAN JABATAN JENISKELAMINKARYAWAN
------- --------------- ---------- --------------------
1003 Sintia Direktur P
1006 Santi Direktur P
1008 Maruko SPvisior P
1009 Sinta Haruno HRD P
1013 Rika Hanino Direktur P
1014 Dinda Kumala Sekretaris P
1015 Nona SPvisior P
1018 Marini Julfikar HRD P
8 rows selected
7. AGGREGATE FUNCTIONS
1) Untuk mengetahui jumlah karyawan yang berstatus sudah menikah(Kawin).
SQL> select COUNT(*)
2 from karyawan
3 where statuskaryawan='Kawin';
COUNT(*)
----------
11
2) Untuk mengetahui tanggal lahir dari calon pegawai yang tanggal lahirnya paling tua atau paling awal.
SQL> select MIN(tanggal_lahir)
2 from calon_pegawai;
MIN(TANGGAL_LAHIR)
------------------
3/2/1975
3) Untuk mengetahui tanggal lahir dari calon pegawai yang tanggal lahirnya paling muda atau paling akhir.
SQL> select MAX(tanggal_lahir)
2 from calon_pegawai;
MAX(TANGGAL_LAHIR)
------------------
8/8/1990
4) Untuk mengetahui rata-rata gaji dari semua golongan.
SQL> select AVG(gaji)
2 from golongan;
AVG(GAJI)
----------
5600000
5) Untuk mengetahui jumlah total dari gaji pada tabel golongan.
SQL> select SUM(gaji)
2 from golongan;
SUM(GAJI)
----------
28000000
6) Untuk mengetahui jumlah jabatan yang mengikuti pelatihan (Penggunaan fungsi DISTINCT).
SQL> select COUNT(DISTINCT kd_jabatan)
2 from pelatihan;
COUNT(DISTINCTKD_JABATAN)
-------------------------
2
7) Untuk menampilkan gaji minimum dari semua golongan dalam tabel golongan.
SQL> select MIN(gaji)
2 from golongan;
MIN(GAJI)
----------
2000000
8) Untuk menampilkan gaji maksimum dari semua golongan dalam tabel golongan.
SQL> select MAX(gaji)
2 from golongan;
MAX(GAJI)
----------
10000000
9) Untuk mengetahui jumlah karyawan yang lolos seleksi pada tes psikotes( nilai > 55 ).
SQL> select COUNT(*)
2 from psikotes
3 where nilai_psikotes > 50
4 ;
COUNT(*)
----------
3
10) Untuk mengetahui jumlah jenis materi dalam tabel pelatihan.
SQL> select COUNT(DISTINCT materi)
2 from pelatihan;
COUNT(DISTINCTMATERI)
---------------------
2
8. KLAUSA GROUP BY
1) Beriku query untuk menampilkan jumlah keseluruhan nilai dari tiap-tiap jabatan berdasarkan jabatan masing-masing dengan menambahkan fungsi MODULUS (MODULUS 15).
SQL> select a.kd_jabatan, b.jabatan, MOD((SUM(a.hasil)),15)
2 from pelatihan a, jabatan b
3 where a.kd_jabatan=b.kd_jabatan
4 group by a.kd_jabatan, b.jabatan;
KD_JABATAN JABATAN MOD((SUM(A.HASIL)),15)
---------- ---------- ----------------------
2005 SPvisior 0
2004 HRD 5
2003 Sekretaris 8
2) Berikut query untuk menampilkan jumlah orang yang diwawancarai berdasarkan NIK pewawancara.(Yang ditampilkan hanya NIK dan jumlah yg diwawancarai)
SQL> select NIK, COUNT(nilai_wawancara)
2 from penilai
3 group by NIK;
NIK COUNT(NILAI_WAWANCARA)
------- ----------------------
1001 4
1003 3
3) Sama seperti pada contoh nomor 2 tetapi yang disini juga menampilkan nama dari pewawancara.
NIK NAMA_KARYAWAN COUNT(A.NILAI_WAWANCARA)
------- --------------- ------------------------
1003 Sintia 3
1001 Juniarko 4
4) Sama seperti nomor 3 tetapi menampilkan jumlah nilai dari yang mereka nilai.
SQL> select a.NIK, b.nama_karyawan, COUNT(a.nilai_wawancara) "count", SUM(a.nilai_wawancara) "TTL"
2 from penilai a, karyawan b
3 where a.NIK=b.NIK
4 group by a.NIK, b.nama_karyawan;
NIK NAMA_KARYAWAN count TTL
------- --------------- ---------- ----------
1003 Sintia 3 175
1001 Juniarko 4 284
5) Berikut query untuk menampilkan rata-rata nilai dari hasil masing-masing yang mereka wawancarai.
SQL> select NIK, AVG(nilai_wawancara)
2 from penilai
3 group by nik;
NIK AVG(NILAI_WAWANCARA)
------- --------------------
1001 71
1003 58.3333333333333
6) Sama seperti pada nomor 6 tetapi ditambahkan tampilan jumlah orang yang pewawancara wawancarai.
SQL> select NIK, COUNT(nilai_wawancara), AVG(nilai_wawancara)
2 from penilai
3 group by nik;
NIK COUNT(NILAI_WAWANCARA) AVG(NILAI_WAWANCARA)
------- ---------------------- --------------------
1001 4 71
1003 3 58.3333333333333
7) Sama seperti nomor 6 tetapi menggunakan pembulatan keatas sampai tidak menjadi bilangan decimal.
SQL> select NIK, ROUND((AVG(nilai_wawancara)), 0) "AVG"
2 from penilai
3 group by NIK;
NIK AVG
------- ----------
1001 71
1003 58
8) Mencari nilai minimum yang dinilai oleh masing-masing pewawancara.
SQL> select NIK, MIN(nilai_wawancara) "MIN"
2 from penilai
3 group by nik;
NIK MIN
------- ----------
1001 56
1003 20
9) Mencari nilai maksimum yang dinilai oleh masing-masing pewawancara(berdasarkan pewawancara).
SQL> select NIK, MAX(nilai_wawancara) "MIN"
2 from penilai
3 group by nik;
NIK MIN
------- ----------
1001 88
1003 85
10) Sama seperti nomor 9 tetapi menggunakan join tabel untuk menampilkan nama sesuai NIK.
SQL> select a.nik, MAX(a.nilai_wawancara), b.nama_karyawan
2 from penilai a, karyawan b
3 where a.NIK=b.Nik
4 group by a.NIK, b.nama_karyawan;
NIK MAX(A.NILAI_WAWANCARA) NAMA_KARYAWAN
------- ---------------------- ---------------
1003 85 Sintia
1001 88 Juniarko
9. KLAUSA HAVING
1) Berikut query untuk menampilkan jumlah total nilai berdasarkan jabatan pada tabel pelatihan dimana jumlah total dari nilai masing-masing jabatan berjumlah lebih dari 200.
SQL> select kd_jabatan, SUM(hasil)
2 from pelatihan
3 group by kd_jabatan
4 having SUM(hasil) > 200;
KD_JABATAN SUM(HASIL)
---------- ----------
2004 245
2) Berikut query untuk menampilkan nilai minimum yang ada atau yang pernah diperoleh pada jabatan tertentu yang mempunyai nilai minimum lebih besar dari 50.(Dari hasil dibawah ini masih ada beberapa kd_jabatan yang tidak tampil karena mempunyai nilai minimum dibawah 50).
SQL> select kd_jabatan, MIN(hasil)
2 from pelatihan
3 group by kd_jabatan
4 having MIN(hasil) > 50;
KD_JABATAN MIN(HASIL)
---------- ----------
2003 53
2004 75
3) Berikut query untuk menampilkan nilai pelatihan maksimum yang ada dari tiap-tiap jabatan tertentu yang mempunyai nilai maksimum lebih besar dari 80. Query ini berguna untuk melihat jabatan-jabatan yang memiliki karyawan berpotensi dari pada yang jabatan yang lain.
SQL> select kd_jabatan, MAX(hasil)
2 from pelatihan
3 group by kd_jabatan
4 having MAX(hasil) > 80;
KD_JABATAN MAX(HASIL)
---------- ----------
2004 90
2005 85
4) Berikut query untuk menampilkan rata-rata nilai hasil pelatihan dari tiap-tiap jabatan tetapi hanya yang nilai rata-ratanya lebih dari 60.
SQL> select kd_jabatan, AVG(hasil) "AVG"
2 from pelatihan
3 group by kd_jabatan
4 having AVG(hasil) > 60;
KD_JABATAN AVG
---------- ----------
2004 81.6666666
2005 67.5
5) Sama seperti nomor 5 tetapi dilakukan pembulatan ke atas dengan dua angka decimal.
SQL> select kd_jabatan, ROUND((AVG(hasil)),2) "AVG"
2 from pelatihan
3 group by kd_jabatan
4 having AVG(hasil) > 60;
KD_JABATAN AVG
---------- ----------
2004 81.67
2005 67.5
6) Sama seperti nomor 5 tetapi dilakukan pembulatan kebawah dengan fungsi TRUNC dan satu angka decimal. Beda dengan nomor 5, query ini menampilkan rata-rata diatas 50.
SQL> select kd_jabatan, TRUNC((AVG(hasil)),1) "AVG"
2 from pelatihan
3 group by kd_jabatan
4 having AVG(hasil) > 50;
KD_JABATAN AVG
---------- ----------
2003 53
2004 81.6
2005 67.5
7) Hampir sama dengan no 6 tetapi ada query untuk menghitung MODULUS.
SQL> select kd_jabatan, MOD((ROUND((AVG(hasil)),0)),12) "AVG"
2 from pelatihan
3 group by kd_jabatan
4 having AVG(hasil) > 50;
KD_JABATAN AVG
---------- ----------
2003 5
2004 10
2005 8
8) Berikut query untuk menampilkan modulus dari hasil jumlah nilai pada semua nilai berdasarkan masing-masing jabatan dengan syarat hasil penjumlahannya lebih dari 200.
SQL> select kd_jabatan, MOD((SUM(hasil)),15)
2 from pelatihan
3 group by kd_jabatan
4 having SUM(hasil) <>
KD_JABATAN MOD((SUM(HASIL)),15)
---------- --------------------
2003 8
2005 0
9) Hampir sama seperti nomor 8 tetapi disini menampilkan nama jabatannya(join table).
SQL> select a.kd_jabatan, b.jabatan, MOD((SUM(a.hasil)),15)
2 from pelatihan a, jabatan b
3 where a.kd_jabatan=b.kd_jabatan
4 group by a.kd_jabatan, b.jabatan
5 having SUM(a.hasil) <>
KD_JABATAN JABATAN MOD((SUM(A.HASIL)),15)
---------- ---------- ----------------------
2005 SPvisior 0
2003 Sekretaris 8
10) Fungsinya sama seperti nomor 7 tetapi disini menampilkan nama jabatan atau dengan kata lain menggunakan join table.
SQL> select a.kd_jabatan, b.jabatan, MOD((ROUND((AVG(a.hasil)),0)),12) "MOD"
2 from pelatihan a, jabatan b
3 where a.kd_jabatan=b.kd_jabatan
4 group by a.kd_jabatan, b.jabatan
5 having AVG(hasil) > 50;
KD_JABATAN JABATAN MOD
---------- ---------- ----------
2005 SPvisior 8
2004 HRD 10
2003 Sekretaris 5





untuk mendownload file nya dengan format doc, silakan download disini




----------------------------------------##############------------------------------------------
KLIK IKLAN, ANDA AKAN DIBAYAR..!!!
Dapatkan Tambahan Rupiah Dengan Klik Iklan Pada Sistem PTC, Setiap Anda Klik Iklan, Anda Akan Dibayar..

Silahkan Daftarkan Diri Anda Disini :
DbClix

Subscribe to receive free email updates:

0 Response to "Penggunaan Character Function di Oracle"

Post a Comment

Silahkan berkomentar di bawah ini, komentar yang tidak sopan, mengandung SARA dan saling menghujat tidak akan diterima :D