目次
本記事では
本記事では、b→dashにおけるSQLの用途や記述ルールについて説明します。
b→dashにおけるSQLの基本的な操作については「SQLを用いてデータを加工/統合する手順を知りたい」をご参照ください。
b→dashにおけるSQLの用途
b→dashでSQLを利用する主な用途は、b→dashにあるデータファイルに対して加工や統合を行うという使い方になります。b→dashにあるデータファイルを使用せずに、SQLで新規にデータファイルを作成することはできませんのでご留意ください。
【参考:b→dashにおけるSQLの用途】
b→dashにおけるSQLの基本ルール
b→dashにおけるSQLの基本ルールを『① 使用可能なSQL文について』『② データ型ごとのルールについて』『③ 文字数上限について』『④「’」(シングルクォート)「”」(ダブルクォート)で囲んだ場合について』『⑤ コメントアウトの記述方法』『⑥ SQLを利用したカラム名の命名方法』の6つに分けて説明します。
① 使用可能なSQL文について
b→dashで使用可能なSQL文について、「命令文」「SQL関数」の2つに分けて紹介します。
使用可能な命令文
b→dashでは、以下の7種類の命令文を使用することができます。
※ 記載のない命令文は使用することができません
SQLの種類 | 命令文 | 注意事項 |
DDL | CREATE TABLE | CREATE文で作成したテーブルは、SQLセットの中で利用する中間テーブルとしてのみ利用可能です。作成したテーブルをb→dashのデータパレット上で表示させることはできないのでご注意ください。 |
ALTER TABLE | - | |
RENAME TABLE | - | |
DML | SELECT | b→dashでは、SELECT文で抽出したデータを保存するため、最終クエリは必ずSELECT文にしていただくようにお願いします。 |
JOIN | - | |
UPDATE | - | |
DCL | ※全て使用不可 | - |
使用可能なSQL関数
b→dashで使用可能なSQL関数については、以下の外部サイトをご参照ください。
snowflake:SQL関数リファレンス
※上記にて紹介されている関数について、加工/統合に使用する集計関数はすべてb→dashで使用可能ですが、他の一部の関数は使用することができませんのでご留意ください
② データ型のルールについて
b→dashでSQLを使用してデータの抽出や変更を行う際は、カラムに設定したデータ型ごとのルールに則って記述する必要があります。データ型ごとの記述のルールについては、以下をご参照ください。
データ型 | ルール |
小数型 |
指定した小数点の位より下の位は「0」であると認識されます。
例)SELECT * FROM TABLE_A WHERE COLUMN_B = 1.2; とした場合は以下のようなデータが抽出されます ● 抽出されるデータ:「1.2」「1.20」「1.200」など ● 抽出されないデータ:「1.21」「1.200001」など |
日付型 |
「-」区切りの日付表示は成功しますが、「/」区切りの日付表示をするとエラーになります。
● 成功例:「'2021-01-01'」など ● 失敗例:「'2021/01/01'」など ※SQLで日付を参照した場合、タイムゾーンはJSTではなくUTCが適用されます |
日時型 |
「-」区切りの日付表示は成功しますが、「/」区切りの日付表示をするとエラーになります。
● 成功例:「'2021-01-01 15:00:00'」など ● 失敗例:「'2021/01/01 15:00:00'」など ※SQLで日付を参照した場合、タイムゾーンはJSTではなくUTCが適用されます |
ISO 8601規格で定義している記載方法を利用することができます。
● 成功例 「'2020-12-31T15:00:00Z'」 「'2020-12-31 15:00:00'」 「'2020-12-31 15:0:0'」 ● 失敗例 「'2020/12/31 15:00:00'」 |
|
真偽値型 |
1/0, true/falseなど広いフォーマットを利用することができます。
● 成功例:「1」「true」「'1'」「'true'」「TRUE」「True」 |
③ 文字数上限について
b→dashでSQLを使用する場合において、記述可能な文字数の上限は100,000文字となります。文字数のカウント対象には、スペースやタブ、改行、コメントなども含まれるので、記述する際はご注意ください。
④「’」(シングルクォート)「”」(ダブルクォート)で囲んだ場合について
b→dashでSQL文を記述する際に「’」(シングルクォート)で文字を囲んだ場合、抽出条件やカラム名に登録する名前などの「文字列」として判定します。「”」(ダブルクォート)で文字を囲んだ場合、カラム名などの「変数」として判定します。
下記では、select文を例に「’」(シングルクォート)と「”」(ダブルクォート)で囲む際の成功例と失敗例を紹介します。
成功例
SELECT * FROM TABLE_A WHERE "COLUMN_1" = 'AAA'
失敗例①
SELECT * FROM TABLE_A WHERE "COLUMN_1" = "AAA"
上記のように「AAA」を「”」(ダブルクォート)で囲むと、「AAA」はカラム名として判定されるためエラーが発生します。
失敗例②
SELECT * FROM TABLE_A WHERE 'COLUMN_1' = 'AAA'
上記のように「COLUMN_1」を「’」(シングルクォート)で囲むと、「COLUMN_1」という文字列と判定されるため正しく表示されません。
⑤ コメントアウトの記述方法
b→dashでSQL文の中にコメントアウトを記述する方法について下記で「1行をコメントアウト」「複数行をコメントアウト」の2つの方法に分けて説明します。
1行をコメントアウト
1行のみをコメントアウトしたい場合は、コメントアウトしたい箇所の先頭に「—」(ハイフン2つ)を挿入することで、「–」から後ろの1行をコメントアウトすることができます。
コメントアウトしたい文の先頭に「—」(ハイフン2つ)を挿入します
複数行をコメントアウト
複数行をコメントアウトしたい場合は、コメントアウトしたい行を「/*」「*/ 」(スラッシュ+アスタリスク) で囲うことで、囲まれた行を全てコメントアウトすることができます。
コメントアウトしたい行の前に「/*」、後ろに「*/ 」を挿入します
⑥ SQLを利用したカラム名の命名方法
b→dashでSQL文を記述する際に、SQL構文の「SELECT ~ AS ~」を利用することでカラム名を命名することができます。
b→dashでは、「SELECT ~ AS ~」という表記方法の場合、英小文字でカラム名を入力しても「英大文字」でカラム名が命名される仕様になっています。
【「SELECT ~ AS ~」を用いたサンプルコード】
SELECT COLUMN_1 AS col_1 /*「col_1」(英小文字)と入力しても、『COL_1』(英大文字)と命名されます*/
カラム名を「英小文字」で命名したい場合は、「SELECT ~ AS “~”」という命名するカラム名を「”」(ダブルクォート)で囲む表記方法を利用する必要があります。
【「SELECT ~ AS “~”」を用いたサンプルコード】
SELECT COLUMN_1 AS "col_1" /*『col_1』(英小文字)で命名されます*/