

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# NULLIF 関数
<a name="r_NULLIF_function"></a>

## 構文
<a name="r_NULLIF_function-synopsis"></a>

NULLIF 式は 2 つの引数を比較し、引数が等しい場合に Null を返します。引数が等しくない場合、最初の引数が返されます。この式は NVL または COALESCE 式の逆です。

```
NULLIF ( expression1, expression2 )
```

## 引数
<a name="r_NULLIF_function-arguments"></a>

 *expression1, expression2*   
比較対象の列または式。戻り値の型は、最初の式の型と同じです。NULLIF の結果のデフォルトの列名は、最初の式の列名です。

## 例
<a name="r_NULLIF_function-examples"></a>

次の例では、引数が等しくないため、クエリは `first` 文字列を返します。

```
SELECT NULLIF('first', 'second');

case
-------
first
```

次の例では、文字列リテラル引数が等しいため、クエリは `NULL` を返します。

```
SELECT NULLIF('first', 'first');

case
-------
NULL
```

次の例では、整数の引数が等しくないため、クエリは `1` を返します。

```
SELECT NULLIF(1, 2);

case
-------
1
```

次の例では、整数の引数が等しいため、クエリは `NULL` を返します。

```
SELECT NULLIF(1, 1);

case
-------
NULL
```

次の例に示すクエリは、LISTID 値と SALESID 値が一致する場合に Null を返します。

```
select nullif(listid,salesid), salesid
from sales where salesid<10 order by 1, 2 desc;

listid  | salesid
--------+---------
     4  |       2
     5  |       4
     5  |       3
     6  |       5
     10 |       9
     10 |       8
     10 |       7
     10 |       6
        |       1
(9 rows)
```

NULLIF を使用し、空の文字列が常に Null として返されるようにします。以下の例では、NULLIF 式は Null 値または少なくとも 1 文字を含む文字列のどちらかを返します。

```
insert into category
values(0,'','Special','Special');

select nullif(catgroup,'') from category
where catdesc='Special';

catgroup
----------
null
(1 row)
```

NULLIF は末尾の空白を無視します。文字列が空ではないが空鶴が含まれる場合も、NULLIF は Null を返します。

```
create table nulliftest(c1 char(2), c2 char(2));

insert into nulliftest values ('a','a ');

insert into nulliftest values ('b','b');


select nullif(c1,c2) from nulliftest;
c1
------
null
null
(2 rows)
```