こんにちは。t.ozawaです。
今回はSnowflakeにおけるSELECT構文の追加オプションについて紹介します!
普段SQLの中で一番用いているSELECT構文ですが、痒い所に手が届く4点の便利な追加オプションについてを説明していきます。
- EXCLUDEオプション
- RENAMEオプション
- ILIKEオプション
- REPLACEオプション
1. EXCLUDEオプション
SELECT構文でアスタリスクで全カラムを指定したときに使用できます。
アスタリスクの後にEXCLUDEを付けることで、指定したカラム以外のすべてのカラムを出力することができます。
元データ
SELECT * FROM PODB_PREF.PODB.PR_PA20;
EXCLUDE出力
//POPULATIONカラムだけ除いてすべてのカラムを表示
SELECT * EXCLUDE(POPULATION) FROM PODB_PREF.PODB.PR_PA20;
//以下のSQLと同じ出力
//SELECT RESEARCH_YEAR, PREF_CODE, ... , NATIONALITY_2GROUPS --POPULATION以外のカラム
//FROM PODB_PREF.PODB.PR_PA20;
特定のカラムを出力したくない、けれどもSELECTで膨大なカラム一覧を指定するのがめんどくさい!という場合に、使える機能になります。
もちろん、複数カラムを指定して除外することも可能です!
EXCLUDEを複数カラムに使用する
//POPULATIONとNATIONALITY_2GROUPSカラムを除いてすべてのカラムを表示
SELECT * EXCLUDE(POPULATION, NATIONALITY_2GROUPS) FROM PODB_PREF.PODB.PR_PA20;
2. RENAMEオプション
こちらも同様に、SELECT構文でアスタリスクで全カラムを指定したときに使用できます。
アスタリスクの後に、RENAMEを付けることで、指定したカラム名を変更してすべてのカラムを出力することができます。
元データ
SELECT * FROM PODB_PREF.PODB.PR_PA20;
RENAME出力
//POPULATIONカラムをVALUEカラムに名称変更し、すべてのカラムを表示
SELECT * RENAME(POPULATION AS VALUE) FROM PODB_PREF.PODB.PR_PA20;
//以下のSQLと同じ出力
//SELECT RESEARCH_YEAR, PREF_CODE, ... , NATIONALITY_2GROUPS, POPULATION AS VALUE --POPULATIONを名称変更
//FROM PODB_PREF.PODB.PR_PA20;
特定のカラム名変更したいけれどもSELECTで膨大なカラム一覧を指定するのがめんどくさい!という場合に、使える機能になります。
もちろん、複数カラムを指定して除外することも可能です!
RENAMEを複数カラムに使用する
//複数カラムを名称変更し、すべてのカラムを表示
SELECT * RENAME(NATIONALITY_2GROUPS AS INDEX, POPULATION AS VALUE) FROM PODB_PREF.PODB.PR_PA20;
3. ILIKEオプション
こちらも同様に、SELECT構文でアスタリスクで全カラムを指定したときに使用できます。
アスタリスクの後に、ILIKEを付けることで、カラム名を文字列検索しマッチした全カラムを出力することができます。
元データ
SELECT * FROM PODB_PREF.PODB.PR_PA20;
ILIKE出力
//「PREF」という文字パターンでカラム名を検索し、ヒットしたすべてのカラムを表示
SELECT * ILIKE '%PREF%' FROM PODB_PREF.PODB.PR_PA20;
ILIKE構文はカラム名に対して条件をかけられる数少ない機能です。
4. REPLACEオプション
こちらも同様に、SELECT構文でアスタリスクで全カラムを指定したときに使用できます。
アスタリスクの後に、REPLACEを付けることで、特定のカラムの値を変更したうえで全カラムを出力することができます。
元データ
SELECT * FROM PODB_PREF.PODB.PR_PA20;
REPLACE出力
//POPULATIONカラムの値を編集。数値の後に文字列「人」を追加
SELECT * REPLACE( to_char(POPULATION) || '人' AS POPULATION) FROM PODB_PREF.PODB.PR_PA20;
//以下のSQLと同じ出力
//SELECT RESEARCH_YEAR, PREF_CODE, ... , NATIONALITY_2GROUPS,
// to_char(POPULATION) || '人' AS POPULATION --POPULATIONの中身を変更
//FROM PODB_PREF.PODB.PR_PA20;
特定のカラムの中身を変更したい場合に、SELECTで膨大なカラム一覧を指定するのがめんどくさい際に、使える機能になります。
おわりに
truestarではSnowflakeの検討、導入支援や環境構築からアプリ開発まで幅広くサポート可能です。
Snowflakeに゙興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらから相談ください!
これまでのSnowflakeに関する記事はこちら