Di MS SQL-Server, saya bisa melakukan:
SELECT ISNULL(Field,'Empty') from Table
Tetapi dalam PostgreSQL saya mendapatkan kesalahan sintaksis. Bagaimana cara meniru ISNULL()
fungsi?
sql-server
postgresql
null
Byron Whitlock
sumber
sumber
ISNULL
mengambil dua argumen dan mengembalikan yang kedua adalah yang pertamanull
, jika tidak yang pertama.Jawaban:
Atau lebih idiomatik:
sumber
coalesce
. (PS Anda juga bisa melakukannya di MS SQL Server.)coalesce
yang ada di standar SQL, denganisnull
menjadi fungsi MS-spesifik yang pada dasarnya adalahcoalesce
dengan hanya dua parameter.Gunakan
COALESCE()
sebaliknya:Fungsinya sangat mirip
ISNULL
, meskipun menyediakan lebih banyak fungsi. Coalesce akan mengembalikan nilai bukan nol pertama dalam daftar. Jadi:mengembalikan 5, sementara
mengembalikan 2
Coalesce akan mengambil sejumlah besar argumen. Tidak ada maksimum yang didokumentasikan. Saya mengujinya akan 100 argumen dan berhasil. Ini harus banyak untuk sebagian besar situasi.
sumber
sumber
ISNULL
Anda maksud komentator, tetapifield IS NULL
memberikan nilai boolean, sementaraISNULL
di SQL Server beroperasi sepertiCOALESCE
: mengembalikan salah satu dariNULL
nilai-nilai. Jawaban ini sangat salah. Lihat dokumentasi:ISNULL
.Mencoba:
sumber
Buat fungsi berikut
Dan itu akan berhasil.
Anda dapat membuat versi berbeda dengan tipe parameter berbeda.
sumber