

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# NVL2 fungsi
<a name="r_NVL2"></a>

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

## Sintaksis
<a name="r_NVL2-synopsis"></a>

```
NVL2 ( expression, not_null_return_value, null_return_value )
```

## Argumen
<a name="r_NVL2-arguments"></a>

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

 *not\$1null\$1return\$1value*   
Nilai yang dikembalikan jika *ekspresi* mengevaluasi ke NOT NULL. Nilai *not\$1null\$1return\$1value* harus memiliki tipe data yang sama dengan *ekspresi* atau secara implisit dapat dikonversi ke tipe data tersebut.

 *null\$1return\$1value*   
Nilai yang dikembalikan jika *ekspresi* mengevaluasi ke NULL. Nilai *null\$1return\$1value* harus memiliki tipe data yang sama dengan *ekspresi* atau secara implisit dapat dikonversi ke tipe data tersebut.

## Jenis pengembalian
<a name="r_NVL2-return-type"></a>

Jenis NVL2 pengembalian ditentukan sebagai berikut:
+ Jika *not\$1null\$1return\$1value atau null\$1return\$1value* adalah *null, tipe data dari ekspresi not-null dikembalikan*.

*Jika kedua *not\$1null\$1return\$1value dan null\$1return\$1value* tidak null:*
+ Jika *not\$1null\$1return\$1value dan *null\$1return\$1value** memiliki tipe data yang sama, tipe data tersebut dikembalikan.
+ Jika *not\$1null\$1return\$1value dan null\$1return\$1value* *memiliki tipe data numerik yang berbeda, tipe data numerik terkecil yang kompatibel dikembalikan*.
+ Jika *not\$1null\$1return\$1value dan null\$1return\$1value* *memiliki tipe data datetime yang berbeda, tipe data stempel waktu dikembalikan*.
+ *Jika *not\$1null\$1return\$1value dan null\$1return\$1value* memiliki tipe data karakter yang berbeda, tipe data *not\$1null\$1return\$1value* dikembalikan.*
+ *Jika *not\$1null\$1return\$1value dan null\$1return\$1value* memiliki tipe data numerik dan non-numerik campuran, tipe data *not\$1null\$1return\$1value* dikembalikan.*

**penting**  
*Dalam dua kasus terakhir di mana tipe data *not\$1null\$1return\$1value dikembalikan, null\$1return\$1value* secara implisit dilemparkan ke tipe data tersebut.* Jika tipe data tidak kompatibel, fungsi gagal.

## Catatan penggunaan
<a name="nvl2-usage-notes"></a>

[Fungsi DECODE](r_DECODE_expression.md)dapat digunakan dengan cara yang mirip dengan NVL2 ketika *ekspresi* dan parameter *pencarian* keduanya nol. Perbedaannya adalah bahwa untuk DECODE, pengembalian akan memiliki nilai dan tipe data dari parameter *hasil*. *Sebaliknya, untuk NVL2, pengembalian akan memiliki nilai parameter *not\$1null\$1return\$1value atau null\$1return\$1value*, mana yang dipilih oleh fungsi, tetapi akan memiliki tipe data *not\$1null\$1return\$1value*.*

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 yang NVL2 dikembalikan adalah VARCHAR.

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

## Contoh
<a name="r_NVL2-examples"></a>

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	(906) 632-4407
Caldwell Acevedo 	Nunc.sollicitudin@Duisac.ca
Quinn Adams		  vel@adipiscingligulaAenean.com
Kamal Aguilar		quis@vulputaterisusa.com
Samson Alexander	 hendrerit.neque@indolorFusce.ca
Hall Alford		  ac.mattis@vitaediamProin.edu
Lane Allen		   et.netus@risusDonec.org
Xander Allison	   ac.facilisis.facilisis@Infaucibus.com
Amaya Alvarado	   dui.nec.tempus@eudui.edu
Vera Alvarez		 at.arcu.Vestibulum@pellentesque.edu
Yetta Anthony		enim.sit@risus.org
Violet Arnold		ad.litora@at.com
August Ashley		consectetuer.euismod@Phasellus.com
Karyn Austin		 ipsum.primis.in@Maurisblanditenim.org
Lucas Ayers		  at@elitpretiumet.com
```