DISTINCT 述部
DISTINCT 述部は、2 つの式を比較し、その値が同一でない場合に TRUE に評価されます。
DISTINCT 述部の結果は、その入力式のいずれかまたは両方が NULL であるかどうかによって異なります。
DISTINCT 述部の結果が NULL になることはありません。
入力式 | IS DISTINCT FROM | IS NOT DISTINCT FROM |
---|---|---|
両方の入力が非 NULL。 | 入力が同一ではない場合は TRUE、入力が同一の場合は FALSE に評価されます。 <> 演算子と同等です。 |
入力が同一ではない場合は FALSE、入力が同一の場合は TRUE に評価されます。 = 演算子と同等です。 |
1 つの入力が NULL。 | TRUE に評価されます。 | FALSE に評価されます。 |
両方の入力が NULL。 | FALSE に評価されます。 | TRUE に評価されます。 |
- expression1 および expression2
- 比較対象の式。
例
HV がホスト変数、T1 が 1 つの列 (C1) と 3 つの行を持つ表であるとします。
C1
----
1
2
NULL
- HV=2 の場合、ステートメント
は行 1 および 3 を返します。SELECT * FROM T1 WHERE C1 IS DISTINCT FROM :HV;
HV=2 の場合、ステートメント
は行 2 を返します。SELECT * FROM T1 WHERE C1 IS NOT DISTINCT FROM :HV;
- HV=NULL の場合、ステートメント
は行 1 および 2 を返します。SELECT * FROM T1 WHERE C1 IS DISTINCT FROM :HV;
HV=NULL の場合、ステートメント
は行 3 を返します。SELECT * FROM T1 WHERE C1 IS NOT DISTINCT FROM :HV;