Di SQL Server, kita dapat mengetik IsNull()
untuk menentukan apakah suatu bidang bernilai null. Apakah ada fungsi yang setara di PL / SQL?
sql-server
oracle
tsql
plsql
Goran
sumber
sumber
COALESCE
adalah ANSI, didukung oleh Postgres, MySQL ... Satu-satunya peringatan adalah bahwa itu tidak selalu bekerja secepat sintaks asli.COALESCE
, yang memiliki satu keuntungan pentingNVL
: melakukan evaluasi jalan pintas, sambilNVL
selalu mengevaluasi kedua parameter. BandingkanCOALESCE(1,my_expensive_function)
denganNVL(1,my_expensive_function)
.COALESE()
fungsi besar dan Anda dapat membacanya di MSDOC> COALESCE - sintaks yang sama ini bekerja pada Oracle. Jika data Anda memiliki string kosong bukan NULLS Anda mungkin perlu sesuatu seperti ini:COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField"
.Alih-alih
ISNULL()
, gunakanNVL()
.T-SQL:
PL / SQL:
sumber
Gunakan juga
NVL2
seperti di bawah ini jika Anda ingin mengembalikan nilai lain darifield_to_check
:Penggunaan: ORACLE / PLSQL: NVL2 FUNCTION
sumber
Anda bisa menggunakan kondisi tersebut
if x is not null then...
. Ini bukan fungsi. Ada jugaNVL()
fungsinya, contoh penggunaan yang bagus di sini: Fungsi NVL ref .sumber