SQLServerで2つの値が同じならNULLを返すには、NULLIF関数を使用します。
構文
- (NULLIF構文)
- NULLIF(<値1>, <値2>)
<値1>と<値2>が同じ場合はnullが返ります。
<値1>と<値2>が異なる場合は<値1>が返ります。
サンプル
例1)NULLIF関数を使ったサンプル
1 2 3 4 5 6 7 8 9 10 11 |
select nullif(1, 2) →1 select nullif(1, 1) →null select nullif('1', 1) →null select nullif('ABC', 'DEF') →'ABC' |
例2)NULLIFを使った良くない例
1 2 |
select nullif(getdate(), getdate()) →null |
下記備考を参照ください。
備考
- 引数にgetdate()等の現在時刻取得系の関数を渡すことは避けてください。
(現在時刻の取得タイミングにより細かいミリ秒が変わってくる可能性があるため予期せぬ結果となる場合があるためです。)