皆さんこんにちは
本日は少しARRAYとSTRUCTについて考えてみます。
以前UDFでCASE文や変換をやってみましたが今回はJOINするにしてもJOINするテーブルが無い
場合等があるかと思います。
間に合わせでJOIN用のテーブルを作成する方法を考えてみます。
【例題】
日本の祝日テーブルを配列で作成する。
Googleスプレッドシートからのインポートはしない
【実践】
これらもワンセットで覚えておくと楽です
WITH NANIKA AS (
SELECT * FROM UNNEST(
ARRAY<STRUCT<DATES DATE,HOLIDAY_NAME STRING>>
[
STRUCT( “2021-01-01”,“元日”),
STRUCT( “2021-01-11”,“成人の日”),
STRUCT( “2021-02-11”,“建国記念の日”),
STRUCT( “2021-02-23”,“天皇誕生日”)
]
)
)
SELECT * FROM NANIKA
メリットとして
配列でテーブルを作成する便利な点はデータ型、カラム数を自在に定義することができるところです。
また[]内のSTRUCTはExcelのような表計算ソフトで&を使って関数化すると簡単に作成することが可能です。
勿論この配列を作成する場合、NULLを入れる事も可能ですが
一部のデータ型ではNULLが許容されないケースがあります。(BOOL型等)
簡易的なテーブルを作成するには適してますが数が多くなると非常に手間がかかることもあります。
次回はGoogleスプレッドシートからインポートする方法について確認してきます。
コメントを残す