0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SnowflakeでJSONのNull値をSELECTする時はSTRIP_NULL_VALUEを付ける

Posted at

JSONのNULL値を含む項目のSELECTについて調べました。
STRIP_NULL_VALUEをかませばいいようです。
STRIP_NULL_VALUEを付けた場合と付けない場合でどう違うの?ということを実験したメモです。

この公式ドキュメントの例にあるSQLを使います。

--テーブル作成
CREATE OR REPLACE TABLE mytable
(
  SRC Variant
);

--データを2行追加
INSERT INTO mytable
  SELECT PARSE_JSON(column1)
  FROM VALUES
  ('{
  "a": "1",
  "b": "2",
  "c": null
  }')
  , ('{
  "a": "1",
  "b": "2",
  "c": "3"
  }');

スクリーンショット 2025-02-04 155455.png
SnowsightのGUI上で見るデータプレビューだとこんな感じです。
cという項目に1行目:null、2行目:"3"という値が入っています。

aとbはどうでもいいので、cだけに絞ってSELECTしてみます。

--普通にSELECT
SELECT src:c FROM mytable;

スクリーンショット 2025-02-04 155927.png

--STRIP_NULL_VALUEを付けてSELECT
SELECT STRIP_NULL_VALUE(src:c) FROM mytable;

スクリーンショット 2025-02-04 155951.png
STRIP_NULL_VALUEを付けた方はnullの文字の色がうすい状態になってます。

ちょっとわかりづらいので、結果欄をコピーしてテキストエディタに貼り付けてみました。

--普通にSELECTの結果
SRC:C
null
"3"

--STRIP_NULL_VALUEを付けてSELECTの結果
STRIP_NULL_VALUE(SRC:C)

"3"

普通にSELECTした方はnullというテキストが入っていますが
STRIP_NULL_VALUE付きでSELECTした方はNull値になってることが確認できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?