以下の内容はhttps://dk521123.hatenablog.com/entry/2024/09/15/235911より取得しました。


【Snowflake】Snowflake ~ NULLの扱い ~

■ はじめに

小ネタ。

Snowflake の NULL の扱いについて、メモっておく

目次

【1】IFNULL
【2】NULLIF
【3】NULLIFZERO
【4】EQUAL_NULL
【5】IS_NULL_VALUE
【6】COALESCE

【1】IFNULL

-- expr1 が NULL の場合は、 expr2 を返す
-- それ以外の場合は expr1 を返す
IFNULL( <expr1> , <expr2> )

https://docs.snowflake.com/ja/sql-reference/functions/ifnull

【2】NULLIF

-- expr1 が expr2 と等しい場合は NULL を返し、
-- それ以外の場合は expr1 を返す
NULLIF( <expr1> , <expr2> )

Snowflake
https://docs.snowflake.com/ja/sql-reference/functions/nullif

1)サンプル

SELECT
  NULLIF(id, 'N/A'), -- id が N/A だったらNULL,それ以外は id
  NULLIF(name, 'N/A')
FROM
  demo_table
;

【3】NULLIFZERO

-- 引数が 0 と評価された場合は NULL を返す
-- それ以外の場合は、引数を返す
NULLIFZERO( <expr> )

https://docs.snowflake.com/ja/sql-reference/functions/nullifzero

【4】EQUAL_NULL

-- 2つの式が等しいかどうかを比較
-- NULLs を等値比較の既知の値として扱う
EQUAL_NULL( <expr1> , <expr2> )

https://docs.snowflake.com/ja/sql-reference/functions/equal_null
戻り値 TRUE

EQUAL_NULL( <null> , <null> )

戻り値 FALSE

EQUAL_NULL( <null> , <非null> )
EQUAL_NULL( <非null> , <null> )

【5】IS_NULL_VALUE

-- VARIANT 引数が JSON null値の場合、trueを返す
IS_NULL_VALUE( <variant_expr> )

https://docs.snowflake.com/ja/sql-reference/functions/is_null_value

【6】COALESCE

* 与えられた引数から NULLでない最初の引数を返却する

cf. COALESCE (コーレス) = 結合する、合体する、融合する

https://docs.snowflake.com/ja/sql-reference/functions/coalesce

構文

COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )

-- 最初の null でないデータを返す
--  => 値1がNULLだったら値2、値1がNULLでなかったらそのまま値1を返す
COALESCE(値1, 値2)

サンプル

CREATE OR REPLACE SEQUENCE demo_seq START = 1 INCREMENT = 1;

INSERT INTO demo_table (id, name)
  -- ★idがあれば、なければ、シーケンスでID発行する
  SELECT COALESCE(id, demo_seq.nextval) AS id, name FROM user;

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 関係演算 / 集合論
https://dk521123.hatenablog.com/entry/2024/09/12/003814




以上の内容はhttps://dk521123.hatenablog.com/entry/2024/09/15/235911より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14