Penjelasan rinci tentang fungsi baris tunggal PL/SQL dan fungsi grup Fungsi adalah program yang memiliki nol atau lebih parameter dan nilai kembalian. Oracle memiliki serangkaian fungsi bawaan dalam SQL,
Fungsi-fungsi ini dapat disebut pernyataan SQL atau PL/SQL. Fungsi dibagi menjadi dua kategori:
Fungsi Grup Fungsi Baris Tunggal Artikel ini membahas cara memanfaatkan fungsi baris tunggal dan aturan penggunaannya.
Fungsi baris tunggal dalam SQL
SQL dan PL/SQL hadir dengan banyak jenis fungsi, termasuk karakter, numerik, tanggal, konversi, dan fungsi campuran untuk memproses satu baris data.
Oleh karena itu, fungsi ini secara kolektif dapat disebut sebagai fungsi baris tunggal. Fungsi-fungsi ini dapat digunakan dalam klausa SELECT, WHERE, ORDER BY dan lainnya,
Misalnya, contoh berikut berisi fungsi satu baris seperti TO_CHAR, UPPER, dan SOUNDEX.
PILIH enam,TO_CHAR(tanggal masuk,'hari,DD-Senin-YYYY')
DARI kosong
Dimana UPPER(ename) Suka 'AL%'ORDER BY SOUNDEX(ename)
Fungsi baris tunggal juga dapat digunakan dalam pernyataan lain, seperti klausa SET pada update, klausa VALUES pada INSERT, dan klausa WHERE pada DELET.
Ujian sertifikasi memberikan perhatian khusus pada penggunaan fungsi-fungsi ini dalam pernyataan SELECT, sehingga perhatian kami juga terfokus pada pernyataan SELECT.
Fungsi NULL dan Baris Tunggal Memahami NULL mungkin sulit pada awalnya, dan bahkan orang yang sangat berpengalaman pun masih bisa bingung karenanya.
Nilai NULL mewakili data yang tidak diketahui atau nilai null. Operan apa pun dari operator aritmatika adalah nilai NULL, dan hasilnya adalah nilai NULL.
Aturan ini juga berlaku untuk banyak fungsi. Hanya CONCAT, DECODE, DUMP, NVL, dan REPLACE yang dapat mengembalikan nilai non-NULL ketika dipanggil dengan parameter NULL.
Diantaranya, fungsi NVL adalah yang paling penting karena dapat menangani nilai NULL secara langsung.
NVL memiliki dua parameter: NVL(x1,x2), baik x1 dan x2 adalah ekspresi. Ketika x1 bernilai nol, X2 dikembalikan, jika tidak, x1 dikembalikan.
Mari kita lihat tabel data karyawan yang berisi gaji dan bonus.
nama kolom
jenis kunci bonus gaji emp_id
pk nulls/unik nn,u nnfk tabel tipe data nomor nomor panjang nomor 11.2 11.2
Daripada sekedar menjumlahkan gaji dan bonus, jika suatu baris tertentu bernilai null maka hasilnya akan menjadi null, seperti contoh berikut:
perbarui gaji kosong=(gaji+bonus)*1.1
Dalam pernyataan ini, gaji dan bonus karyawan akan diperbarui dengan nilai baru, namun jika tidak ada bonus,
Artinya, gaji + null, maka akan diambil kesimpulan yang salah. Saat ini, fungsi nvl harus digunakan untuk menghilangkan pengaruh nilai null.
Jadi pernyataan yang benar adalah:
perbarui gaji kosong=(gaji+nvl(bonus,0)*1.1
Fungsi string baris tunggal Fungsi string baris tunggal digunakan untuk memanipulasi data string. Kebanyakan dari mereka memiliki satu atau lebih parameter, dan sebagian besar dari mereka mengembalikan string.
ASCII()
c1 adalah string, mengembalikan kode ASCII dari huruf pertama c1, dan fungsi kebalikannya adalah CHR()
PILIH ASCII('A') BIG_A,ASCII('z') BIG_z
DARI empBIG_A BIG_z65 122
CHR(<i>)[NCHAR_CS]
i adalah angka dan fungsinya mengembalikan representasi desimal dari karakter tersebut
pilih CHR(65),CHR(122),CHR(223)
DARI empCHR65 CHR122 CHR223A z B
MENGHUBUNGKAN(,)
Baik c1 dan c2 adalah string. Fungsi ini menghubungkan c2 ke bagian belakang c1. Jika c1 bernilai nol, c2 akan dikembalikan.
Jika c1 dan c2 keduanya nol, kembalikan nol. Ini mengembalikan hasil yang sama seperti operator ||
pilih nama pengguna concat('slobo ','Svoboda').
dari dualusernameslobo Syoboda
INITCAP()
c1 adalah string. Fungsi ini mengembalikan huruf pertama setiap kata dalam huruf besar dan huruf lainnya dalam huruf kecil. Kata-kata terdiri dari spasi, karakter kontrol,
Pembatasan tanda baca.
pilih INITCAP('veni,vedi,vici') Caesar
dari dualCeasarVeni,Vedi,Vici
INSTR(,[,<i>[,]])
c1 dan c2 keduanya string, i dan j bilangan bulat. Fungsi ini mengembalikan posisi kemunculan c2 ke-j di c1, dan pencarian dimulai dari karakter ke-i dari c1.
Jika karakter yang diperlukan tidak ditemukan, maka 0 dikembalikan. Jika i adalah bilangan negatif, pencarian akan dilakukan dari kanan ke kiri, namun posisinya tetap dihitung dari kiri ke kanan.
Nilai default untuk i dan j adalah 1.
PILIH INSTR('Mississippi','i',3,3)
DARI INSTR ganda('MISSISSIPPI','I',3,3)
11
pilih INSTR('Mississippi','i',-2,3)
dari INSTR ganda('MISSISSIPPI','I',3,3)
2
INSTRB(,[,i[,j])
Sama dengan fungsi INSTR(), hanya saja ia mengembalikan byte. Untuk byte tunggal INSTRB() sama dengan INSTR().
PANJANG()
c1 adalah string, dan panjang c1 dikembalikan. Jika c1 adalah null, nilai null akan dikembalikan.
pilih PANJANG('Ipso Facto') jadi
dari dualergo10
PANJANGb()
Seperti LENGTH(), mengembalikan byte.
lebih rendah()
Mengembalikan karakter huruf kecil c, yang sering muncul di substring tempat.
pilih RENDAH (nama warna)
dari detail item
DIMANA LEBIH RENDAH(nama warna) SEPERTI '%putih%'NAMA WARNAWinterwhite
LPAD(,<i>[,])
c1 dan c2 keduanya adalah string, dan i adalah bilangan bulat. Gunakan string c2 untuk melengkapi panjang i di sisi kiri c1, yang dapat diulang beberapa kali. Jika i lebih kecil dari panjang c1,
Maka hanya karakter c1 selama i yang akan dikembalikan, dan yang lainnya akan terpotong. Nilai default c2 adalah spasi tunggal, lihat RPAD.
pilih LPAD(jawaban,7,'') diisi,jawaban tidak diisi
dari pertanyaan;
PADDED UNPADDED Ya YaTIDAKTIDAKMungkin mungkin
LTRIM(,)
Hapus karakter paling kiri di c1 agar karakter pertama tidak ada di c2. Jika tidak ada c2, maka c1 tidak akan berubah.
pilih LTRIM('Mississippi','Mis') dari dualLTRppi
RPAD(,<i>[,])
Gunakan string c2 untuk melengkapi panjang i di sisi kanan c1, yang dapat diulang beberapa kali. Jika i kurang dari panjang c1, maka hanya karakter c1 sepanjang i yang akan dikembalikan.
Yang lain akan terpotong. Nilai default c2 adalah spasi tunggal, dan lainnya mirip dengan LPAD.
RTRIM(,)
Hapus karakter paling kanan di c1 agar karakter terakhir tidak ada di c2. Jika tidak ada c2, maka c1 tidak akan berubah.
MENGGANTI(,[,])
c1, c2, dan c3 semuanya adalah string. Fungsi ini menggantikan c2 yang muncul di c1 dengan c3 dan kembali.
pilih REPLACE('uptown','up','down')
dari dualREPLACE pusat kota
STBSTR(,<i>[,])
c1 adalah string, i dan j adalah bilangan bulat, dan substring dengan panjang j dikembalikan mulai dari posisi ke-i dari c1, atau hingga akhir string jika j kosong.
pilih SUBSTR('Pesan',1,4)
dari dualSUBSMess
SUBSTRB(,<i>[,])
Ini kira-kira sama dengan SUBSTR, hanya saja I dan J dihitung dalam byte.
SUARA()
Mengembalikan kata-kata yang terdengar mirip dengan c1
pilih SOUNDEX('dawes') Dawes SOUNDEX('daws') Daws, SOUNDEX('dawson')
dari dualDawes Daws DawsonD200 D200 D250
MENERJEMAHKAN(,,)
Ganti karakter yang sama di c1 seperti c2 dengan c3
pilih tes TRANSLATE('fumble','uf','ar') dari dualTEXTramble
PANGKAS([[]] dari c3)
Hapus yang pertama, terakhir, atau keduanya di string c3.
pilih TRIM(' space padded ') trim dari dual TRIMspace padded
ATAS()
Mengembalikan versi huruf besar dari c1, yang sering muncul di substring tempat.
pilih nama dari ganda di mana UPPER(nama) LIKE 'KI%'NAMEKING
Fungsi numerik baris tunggal Fungsi numerik baris tunggal beroperasi pada data numerik, melakukan operasi matematika dan aritmatika. Semua fungsi mengambil parameter numerik dan mengembalikan nilai numerik.
Operan dan nilai semua fungsi trigonometri adalah radian, bukan sudut. Oracle tidak menyediakan fungsi konversi bawaan untuk radian dan sudut.
ABS()
Mengembalikan nilai absolut n
ACOS()
Fungsi kofaktor terbalik mengembalikan angka antara -1 dan 1. n mewakili radian
pilih ACOS(-1) pi,ACOS(1) NOL
DARI dualPI NOL3.14159265 0
ASIN()
Bagaimanapun, fungsi misterius mengembalikan -1 ke 1, n mewakili radian
ATAN()
Fungsi arctangent, mengembalikan nilai arctangent dari n, dimana n mewakili radian.
CEIL()
Mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan n.
KARENA()
Mengembalikan nilai bersama n, dengan n adalah radian
TONGKAT PENDEK()
Mengembalikan kofaktor hiperbolik dari n, dimana n adalah angka.
pilih COSH(<1.4>)
DARI dualCOSH(1.4)2.15089847
EXP()
Mengembalikan pangkat ke-n dari e, e=2,71828183.
LANTAI()
Mengembalikan bilangan bulat terbesar yang kurang dari atau sama dengan N.
LN()
Mengembalikan logaritma natural N, yang harus lebih besar dari 0
LOG(,)
Mengembalikan logaritma n1 ke basis n2
MOD()
Mengembalikan sisa n1 dibagi n2,
KEKUATAN(,)
Mengembalikan n1 yang dipangkatkan n2
BULAT(,)
Mengembalikan nilai n1 yang dibulatkan ke n2 tempat di sebelah kanan koma desimal. Nilai default n2 adalah 0. Kali ini, bilangan bulat terdekat dengan koma desimal dibulatkan.
Jika n2 adalah bilangan negatif, maka dibulatkan ke digit yang sesuai di sebelah kiri koma, n2 harus berupa bilangan bulat.
pilih PUTARAN(12345,-2),PUTARAN(12345.54321,2)
DARI dualROUND(12345,-2) ROUND(12345.54321,2)12300 12345.54
TANDA()
Jika n bilangan negatif maka dikembalikan -1, jika n bilangan positif dikembalikan 1, dan jika n=0 dikembalikan 0.
DOSA()
Mengembalikan nilai positif n, dengan n adalah radian.
SINH()
Mengembalikan nilai positif hiperbolik dari n, dimana n adalah radian.
persegi()
Mengembalikan akar kuadrat dari n, dengan n adalah radian
TAN()
Mengembalikan tangen dari n, dimana n adalah radian
TANH()
Mengembalikan tangen hiperbolik dari n, dimana n adalah radian
TRUNK(,)
Mengembalikan nilai n1 yang dipotong menjadi n2 tempat desimal. Pengaturan default n2 adalah 0. Jika n2 adalah pengaturan default, n1 akan dipotong menjadi bilangan bulat.
Jika n2 adalah nilai negatif, maka dipotong pada posisi yang sesuai di sebelah kiri koma desimal.
Fungsi tanggal baris tunggal
Fungsi tanggal satu baris beroperasi pada tipe data DATA, dan sebagian besar memiliki parameter tipe data DATA.
Sebagian besar nilai yang dikembalikan juga merupakan nilai tipe data DATA.
TAMBAH_BULAN(,<i>)
Mengembalikan hasil tanggal d ditambah i bulan. saya bisa menjadi bilangan bulat apa pun. Jika saya adalah desimal,
Kemudian database secara implisit akan mengubahnya menjadi bilangan bulat dan akan memotong bagian setelah koma.
HARI TERAKHIR()
Fungsi mengembalikan hari terakhir bulan yang berisi tanggal d
BULAN_BETWEEN(,)
Mengembalikan jumlah bulan antara d1 dan d2, jika tanggal d1 dan d2 sama, atau keduanya merupakan hari terakhir pada bulan tersebut,
Kemudian bilangan bulat akan dikembalikan, jika tidak, hasil yang dikembalikan akan berisi pecahan.
BARU_TIME(,,)
d1 adalah tipe data tanggal. Jika tanggal dan waktu di zona waktu tz1 adalah d, kembalikan tanggal dan waktu di zona waktu tz2.
tz1 dan tz2 adalah string.
HARI_BERIKUTNYA(,)
Mengembalikan hari pertama setelah tanggal d yang diberikan oleh dow, yang menentukan hari dalam seminggu menggunakan bahasa yang diberikan di sesi saat ini,
Komponen waktu yang dikembalikan sama dengan komponen waktu d.
pilih NEXT_DAY('01-Jan-2000','Senin') "Senin pertama",
NEXT_DAY('01-Nov-2004','Selasa')+7 "Selasa ke-2")
dari ganda;
Senin ke-1 Selasa ke-203-Jan-2000 09-Nov-2004
BULAT([,])
Tanggal bulat d sesuai dengan format yang ditentukan oleh fmt, yaitu string.
SYADAT
Fungsi ini tidak mengambil parameter dan mengembalikan tanggal dan waktu saat ini.
TRUNK([,])
Mengembalikan tanggal d dalam satuan yang ditentukan oleh fmt.
Fungsi konversi baris tunggal Fungsi konversi baris tunggal digunakan untuk mengoperasikan beberapa tipe data dan mengkonversi antar tipe data.
LEBAR BAGIAN()
c membuat string, dan fungsinya mengubah c menjadi tipe data RWID.
PILIH tes_id
dari test_case
di mana rowid=CHARTORWID('AAAA0SAACAAAALiAAA')
MENGUBAH(,[,])
string ekor c, dset dan sset adalah dua kumpulan karakter. Fungsi ini mengubah string c dari kumpulan karakter sset menjadi kumpulan karakter dset.
Pengaturan default sset adalah kumpulan karakter database.
HEXTORAW()
x adalah string heksadesimal, dan fungsinya mengubah x heksadesimal menjadi tipe data RAW.
RAWTOHEX()
x adalah string tipe data RAW, dan fungsinya mengubah tipe data RAW menjadi tipe data heksadesimal.
ROWIDTOCHAR()
Fungsi mengubah tipe data ROWID menjadi tipe data CHAR.
TO_CHAR([[,)
x adalah tipe data data atau angka. Fungsi ini mengubah x menjadi tipe data char dalam format yang ditentukan oleh fmt.
Jika x adalah tanggal nlsparm= NLS_DATE_LANGUAGE mengontrol bahasa yang digunakan untuk bulan dan hari yang dikembalikan.
Jika x adalah angka nlsparm=NLS_NUMERIC_CHARACTERS digunakan untuk menentukan pemisah desimal dan ribuan, serta simbol mata uang.
NLS_NUMERIC_CHARACTERS="dg", NLS_CURRENCY="string"
HINGGA SAAT INI([,[,)
c mewakili string, dan fmt mewakili string dalam format khusus. Mengembalikan c ditampilkan dalam format fmt, dan nlsparm menunjukkan bahasa yang digunakan.
Fungsi ini mengubah string c menjadi tipe data tanggal.
TO_MULTI_BYTE()
c mewakili string, dan fungsinya mengubah karakter pemotongan c menjadi karakter multi-byte.
TO_NUMBER([,[,)
c mewakili string, fmt mewakili string dalam format khusus, dan nilai pengembalian fungsi ditampilkan dalam format yang ditentukan oleh fmt.
nlsparm mewakili bahasa, dan fungsinya akan mengembalikan angka yang diwakili oleh c.
TO_SINGLE_BYTE()
Ubah karakter multi-byte dalam string c menjadi karakter byte tunggal yang setara.
Fungsi ini hanya digunakan ketika kumpulan karakter database berisi karakter byte tunggal dan multibyte
Fungsi jalur tunggal lainnya
NAMA FILE(,)
dir adalah objek tipe direktori, dan file adalah nama file. Fungsi mengembalikan indikator nilai posisi BFILE yang kosong,
Fungsi digunakan untuk menginisialisasi variabel BFILE atau kolom BFILE.
MEMBACA SANDI(,,[,,,[])
x adalah ekspresi, m1 adalah ekspresi yang cocok, x dibandingkan dengan m1, jika m1 sama dengan x, maka r1 dikembalikan, jika tidak, x dibandingkan dengan m2,
Begitu seterusnya m3, m4, m5.... hingga hasilnya kembali.
MEMBUANG(,[,[,[,]]])
x adalah ekspresi atau karakter, dan fmt mewakili karakter oktal, desimal, heksadesimal, atau tunggal.
Fungsi ini mengembalikan nilai bertipe VARCHAR2 yang berisi informasi tentang representasi internal x.
Jika n1,n2 ditentukan maka byte dengan panjang n2 mulai dari n1 akan dikembalikan.
KOSONG_BLOB()
Fungsi ini tidak memiliki parameter dan mengembalikan indikator posisi BLOB kosong. Fungsi yang digunakan untuk menginisialisasi variabel BLOB atau kolom BLOB.
KOSONG_CLOB()
Fungsi ini tidak memiliki parameter dan mengembalikan indikator posisi CLOB yang kosong. Fungsi digunakan untuk menginisialisasi variabel CLOB atau kolom CLOB.
TERBESAR()
exp_list adalah daftar ekspresi, mengembalikan ekspresi terbesar. Setiap ekspresi secara implisit dikonversi ke tipe data ekspresi pertama.
Jika ekspresi pertama adalah salah satu tipe data string, maka hasil yang dikembalikan adalah tipe data varchar2,
Perbandingan yang digunakan sekaligus merupakan jenis perbandingan yang tidak berisi spasi.
PALING SEDIKIT()
exp_list adalah daftar ekspresi, mengembalikan ekspresi terkecil di antara ekspresi tersebut. Setiap ekspresi secara implisit dikonversi ke tipe data dari ekspresi pertama.
Jika ekspresi pertama adalah salah satu tipe data string, hasil yang dikembalikan adalah tipe data varchar2,
Perbandingan yang digunakan sekaligus merupakan jenis perbandingan yang tidak berisi spasi.
UID
Fungsi ini tidak memiliki parameter dan mengembalikan bilangan bulat yang secara unik mengidentifikasi pengguna database saat ini.
PENGGUNA
Mengembalikan nama pengguna pengguna saat ini
USERENV()
Berdasarkan opt return berisi informasi sesi saat ini. Nilai opsional untuk opt adalah:
Peran SYSDBA merespons dalam sesi ISDBA dan mengembalikan TRUE.
SESSIONID mengembalikan pengidentifikasi sesi audit
ENTRYID mengembalikan pengidentifikasi entri audit yang tersedia
INSTANCE Mengembalikan pengidentifikasi instance setelah sesi terhubung.
Nilai ini hanya digunakan jika Anda menjalankan server Paralel dan memiliki banyak instance.
LANGUAGE mengembalikan rangkaian karakter pengaturan bahasa, wilayah, dan database.
LANG mengembalikan singkatan ISO dari nama bahasa.
TERMINAL Mengembalikan pengidentifikasi sistem operasi untuk terminal atau komputer yang digunakan oleh sesi saat ini.
UKURAN()
x adalah ekspresi. Mengembalikan jumlah byte yang diwakili secara internal oleh x.
Fungsi grup di SQL juga disebut fungsi agregat, yang mengembalikan hasil tunggal berdasarkan beberapa baris.
Kecuali jika kueri dijalankan dan semua hasil disertakan. Tidak seperti fungsi baris tunggal, semua baris diketahui pada waktu parse.
Karena perbedaan ini, fungsi grup memiliki persyaratan dan perilaku yang sedikit berbeda dibandingkan fungsi baris tunggal.
Fungsi grup (multi-baris) Dibandingkan dengan fungsi baris tunggal, Oracle menyediakan serangkaian fungsi multi-baris berbasis grup.
Fungsi-fungsi ini dapat digunakan dalam klausa pilih atau memiliki klausa pilih, dan sering digunakan dengan GROUP BY ketika digunakan untuk memilih substring.
AVG([{DISYINCT|SEMUA}])
Mengembalikan rata-rata nilai numerik. Pengaturan defaultnya adalah SEMUA.
PILIH AVG(sal),AVG(SEMUA sal),AVG(SAL BERBEDA)
DARI scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413
JUMLAH({*|BERBEDA|SEMUA} )
Mengembalikan jumlah baris dalam kueri. Pengaturan default adalah SEMUA, * berarti mengembalikan semua baris.
MAX([{BERBEDA|SEMUA}])
Mengembalikan nilai maksimum item daftar pilihan. Jika x adalah tipe data string, ia mengembalikan tipe data VARCHAR2.
Jika X adalah tipe data DATA, maka akan menghasilkan tanggal, jika X adalah tipe data numerik, maka akan dikembalikan angka.
Perhatikan bahwa berbeda dan semua tidak berpengaruh, nilai maksimum harus sama untuk kedua pengaturan.
MIN([{BERBEDA|SEMUA}])
Mengembalikan nilai minimum item daftar pilihan.
STDDEV([{BERBEDA|SEMUA}])
Mengembalikan deviasi standar item daftar pemilih, dengan deviasi standar adalah akar kuadrat dari varians.
JUMLAH([{BERBEDA|SEMUA}])
Mengembalikan jumlah nilai numerik dari item daftar yang dipilih.
VARIAN([{BERBEDA|SEMUA}])
Mengembalikan varian statistik dari item daftar yang dipilih.
Gunakan GROUP BY untuk mengelompokkan data. Sesuai dengan judulnya, fungsi grup beroperasi pada data yang telah dikelompokkan.
Kami memberi tahu database cara mengelompokkan atau mengklasifikasikan data menggunakan GROUP BY. Saat kami menggunakan fungsi grup dalam klausa SELECT pada pernyataan SELECT,
Kita harus menempatkan kolom yang dikelompokkan atau tidak konstan dalam klausa GROUP BY. Jika grup berdasarkan tidak digunakan untuk pemrosesan khusus,
Kemudian klasifikasi defaultnya adalah mengatur seluruh hasil ke dalam satu kategori.
pilih stat,penghitung(*) zip_count
dari zip_codes KELOMPOK BERDASARKAN negara bagian;
ST ZIP_COUNT----------AK 360AL 1212AR 1309AZ 768CA 3982
Dalam contoh ini, kita menggunakan field state untuk mengklasifikasikan; jika kita ingin mengurutkan hasil berdasarkan kode_pos, kita dapat menggunakan pernyataan ORDER BY,
Klausa ORDER BY dapat menggunakan fungsi kolom atau grup.
pilih stat,penghitung(*) zip_count
dari kode_pos
KELOMPOK BERDASARKAN negara bagian ORDER BERDASARKAN JUMLAH(*) DESC;
ST JUMLAH(*)----------NY 4312PA 4297TX 4123CA 3982
Batasi data yang dikelompokkan dengan klausa HAVING
Sekarang setelah Anda mengetahui cara menggunakan fungsi utama dalam pernyataan SELECT dan klausa ORDER BY dalam kueri, fungsi grup hanya dapat digunakan pada dua substring.
Fungsi grup tidak dapat digunakan dalam substring WHERE. Misalnya, kueri berikut ini salah:
kesalahan
PILIH petugas_penjualan,MINGGU(jumlah_penjualan)
DARI penjualan kotor
WHERE sales_dept='LUAR' DAN JUMLAH(jumlah_penjualan)>10.000
KELOMPOK OLEH sales_clerk
Dalam pernyataan ini, database tidak mengetahui apa itu SUM(). Ketika kita perlu menginstruksikan database untuk mengelompokkan baris dan kemudian membatasi output dari baris yang dikelompokkan,
Cara yang benar adalah dengan menggunakan pernyataan HAVING:
PILIH petugas_penjualan,MINGGU(jumlah_penjualan)
DARI penjualan kotor
WHERE sales_dept='LUAR'
KELOMPOK OLEH sales_clerk
MEMILIKI JUMLAH(jumlah_penjualan)>10.000;
Fungsi yang disarangkan Fungsi dapat disarangkan. Keluaran suatu fungsi dapat menjadi masukan bagi fungsi yang lain. Operan memiliki proses eksekusi yang dapat diwariskan.
Namun pengutamaan fungsi hanya berdasarkan kedudukan, dan fungsi mengikuti prinsip dari dalam ke luar dan dari kiri ke kanan.
Teknologi bersarang umumnya digunakan untuk fungsi seperti DECODE yang dapat digunakan dalam pernyataan penilaian logis IF...THEN...ELSE.