はじめに

Verticaで変数を使う方法について以下の記事でご紹介しました。

vsqlで変数を使う方法
http://vertica-tech.ashisuto.co.jp/variable_on_vsql/

上記記事ではテーブル名に変数を指定する方法をご紹介しましたが、本記事ではWHERE句の条件値に変数を指定する方法をご紹介します。


手順解説にあたっての前提

変数を定義するには、以下2つの方法があります。
 (1)データベースにログイン後に「\set」コマンドで定義する方法
 (2)データベースにログイン前にvsqlの「-v」オプションで定義する方法

ここでは、以下のようなSQLを例に、WHERE句の条件値に変数をセットする方法をそれぞれご紹介します。




使用例(1)データベースにログイン後に定義する方法

データベースにログイン後に定義するには、「\set」コマンドを利用します。




<注意事項>

条件値に文字列をセットする場合、WHERE句内での「’」を認識させるために「”’」と連続で入力する点にご注意ください。



⇒平文でSQLを実行した時と同じ結果を抽出することができました。



使用例(2)データベースにログイン前に定義する方法

データベースにログイン前に定義するには、vsqlの「-v」オプションの「\set」コマンドを利用します。


⇒ログイン後に変数を個別に設定していた時と同様に
 正しく結果を抽出することができました。

<注意事項>
ログイン前に変数を定義する場合に条件値に文字列を指定するには、WHERE句内での「’」を認識させるために「”」で囲む必要がある点にご注意ください。



参考情報

vsqlで変数を使う方法
http://vertica-tech.ashisuto.co.jp/variable_on_vsql/

vsqlの主なコマンド
http://vertica-tech.ashisuto.co.jp/vsql_cmd/

マニュアル
https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/ConnectingToHPVertica/vsql/Variables.htm
https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/ConnectingToHPVertica/vsql/Meta-Commands/setNAMEVALUE….htm



検証バージョンについて

この記事の内容はVertica 7.2で確認しています。