- カテゴリ:
IFNULL¶
expr1 が NULL の場合は、 expr2 を返します。それ以外の場合は expr1 を返します。
- エイリアス:
構文¶
引数¶
expr1一般的な式です。
expr2一般的な式です。
使用上の注意¶
Snowflakeは引数の 暗黙的な変換 を実行して互換性を持たせます。たとえば、入力式の1つが数値型の場合、戻り型も数値型になります。つまり
SELECT IFNULL('17', 1);は最初に VARCHAR 値の'17'を NUMBER 値の17に変換し、最初の非 NULL 値を返します。変換が不可能な場合は、暗黙的な変換は失敗します。たとえば、
SELECT IFNULL('foo', 1);はエラーを返します。これは VARCHAR 値の'foo'を NUMBER 値に変換できないためです。同じ型の引数を渡すか、必要に応じて引数を明示的に変換することをお勧めします。
暗黙的な変換が非数値を数値に変換する場合、結果は NUMBER(18,5)型の値になります。
定数ではない数値文字列引数で、 NUMBER(18,5)が数値を表すのに十分でない場合は、値を表すことができる型に引数を キャスト します。
どちらの式にも
UNION、INTERSECT、EXCEPT、MINUSなどの集合演算子を含むSELECTステートメントを含めることができます。セット演算子を使用する場合は、データ型に互換性があることを確認してください。詳細については、 演算子のセット トピックの 一般的な使用上の注意 をご参照ください。
照合順序の詳細¶
The collation specifications of all input arguments must be compatible.
The collation of the result of the function is the highest-precedence collation of the inputs.
戻り値¶
戻り式のデータ型を返します。
両方の式が NULL の場合は、 NULL を返します。
例¶
サプライヤーの連絡先情報を含むテーブルを作成します。
このテーブルには、2つの異なるリージョンの各サプライヤーの電話番号が含まれています。電話番号は、リージョンで NULL にすることもできます。
テーブルに値を挿入します。
次の SELECT ステートメントは、 IFNULL 関数を使用して phone_region_1 と phone_region_2 の値を取得します。
この例では、 IFNULL 関数で以下の結果を示しています。
IF_REGION_1_NULL列には、phone_region_1の値、またはその値が NULL の場合はphone_region_2の値が格納されます。IF_REGION_2_NULL列には、phone_region_2の値、またはその値が NULL の場合はphone_region_1の値が格納されます。phone_region_1とphone_region_2の両方が NULL の場合、この関数は NULL を返します。