Fungsi NVL2 - AWS Clean Rooms

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi NVL2

Mengembalikan salah satu dari dua nilai berdasarkan apakah ekspresi tertentu mengevaluasi ke NULL atau TIDAK NULL.

Sintaks

NVL2 ( expression, not_null_return_value, null_return_value )

Argumen

ekspresi

Ekspresi, seperti nama kolom, yang akan dievaluasi untuk status null.

not_null_return_value

Nilai yang dikembalikan jika ekspresi mengevaluasi ke NOT NULL. Nilai not_null_return_value harus memiliki tipe data yang sama dengan ekspresi atau secara implisit dapat dikonversi ke tipe data tersebut.

null_return_value

Nilai yang dikembalikan jika ekspresi mengevaluasi ke NULL. Nilai null_return_value harus memiliki tipe data yang sama dengan ekspresi atau secara implisit dapat dikonversi ke tipe data tersebut.

Jenis pengembalian

Jenis pengembalian NVL2 ditentukan sebagai berikut:

  • Jika not_null_return_value atau null_return_value adalah null, tipe data dari ekspresi not-null dikembalikan.

Jika kedua not_null_return_value dan null_return_value tidak null:

  • Jika not_null_return_value dan null_return_value memiliki tipe data yang sama, tipe data tersebut dikembalikan.

  • Jika not_null_return_value dan null_return_value memiliki tipe data numerik yang berbeda, tipe data numerik terkecil yang kompatibel dikembalikan.

  • Jika not_null_return_value dan null_return_value memiliki tipe data datetime yang berbeda, tipe data stempel waktu dikembalikan.

  • Jika not_null_return_value dan null_return_value memiliki tipe data karakter yang berbeda, tipe data not_null_return_value dikembalikan.

  • Jika not_null_return_value dan null_return_value memiliki tipe data numerik dan non-numerik campuran, tipe data not_null_return_value dikembalikan.

penting

Dalam dua kasus terakhir di mana tipe data not_null_return_value dikembalikan, null_return_value secara implisit dilemparkan ke tipe data tersebut. Jika tipe data tidak kompatibel, fungsi gagal.

Catatan penggunaan

Untuk NVL2, pengembalian akan memiliki nilai parameter not_null_return_value atau null_return_value, mana yang dipilih oleh fungsi, tetapi akan memiliki tipe data not_null_return_value.

Misalnya, dengan asumsi kolom1 adalah NULL, kueri berikut akan mengembalikan nilai yang sama. Namun, tipe data nilai pengembalian DECODE adalah INTEGER dan tipe data nilai pengembalian NVL2 akan menjadi VARCHAR.

select decode(column1, null, 1234, '2345'); select nvl2(column1, '2345', 1234);

Contoh

Contoh berikut memodifikasi beberapa data sampel, kemudian mengevaluasi dua bidang untuk memberikan informasi kontak yang sesuai bagi pengguna:

update users set email = null where firstname = 'Aphrodite' and lastname = 'Acevedo'; select (firstname + ' ' + lastname) as name, nvl2(email, email, phone) AS contact_info from users where state = 'WA' and lastname like 'A%' order by lastname, firstname; name contact_info --------------------+------------------------------------------- Aphrodite Acevedo (555) 555-0100 Caldwell Acevedo Nunc.sollicitudin@example.ca Quinn Adams vel@example.com Kamal Aguilar quis@example.com Samson Alexander hendrerit.neque@example.com Hall Alford ac.mattis@example.com Lane Allen et.netus@example.com Xander Allison ac.facilisis.facilisis@example.com Amaya Alvarado dui.nec.tempus@example.com Vera Alvarez at.arcu.Vestibulum@example.com Yetta Anthony enim.sit@example.com Violet Arnold ad.litora@example.comm August Ashley consectetuer.euismod@example.com Karyn Austin ipsum.primis.in@example.com Lucas Ayers at@example.com