SET VAR
説明
SET VAR コマンドは、現在のセッションで以前に宣言された一時変数を設定します。
設定変数または Hive 変数を使用するには、SET を使用してください。
構文
SET { VAR | VARIABLE }
{ { variable_name = { expression | DEFAULT } } [, ...] |
( variable_name [, ...] ) = ( query ) }
パラメータ
-
variable_name
既存の変数を指定します。複数の変数を指定する場合、重複があってはなりません。
-
式 (expression)
スカラーサブクエリを含む、任意の式。
-
DEFAULT
DEFAULTを指定すると、変数のデフォルト式が代入されるか、デフォルト式がない場合はNULLが代入されます。 -
query
指定された変数の数と同じ数の列を返しますが、行は最大で 1 行を返す クエリ。各列は、対応する変数のデータ型に暗黙的にキャスト可能である必要があります。クエリが行を返さない場合、
NULL値が代入されます。
例
--
DECLARE VARIABLE var1 INT DEFAULT 7;
DECLARE VARIABLE var2 STRING;
-- A simple assignment
SET VAR var1 = 5;
SELECT var1;
5
-- A complex expression assignment
SET VARIABLE var1 = (SELECT max(c1) FROM VALUES(1), (2) AS t(c1));
SELECT var1;
2
-- resetting the variable to DEFAULT
SET VAR var1 = DEFAULT;
SELECT var1;
7
-- A multi variable assignment
SET VAR (var1, var2) = (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS t(c1));
SELECT var1, var2;
2 1
-- Too many rows
SET VAR (var1, var2) = (SELECT c1, CAST(c1 AS STRING) FROM VALUES(1), (2) AS t(c1));
[ROW_SUBQUERY_TOO_MANY_ROWS] More than one row returned by a subquery used as a row. SQLSTATE: 21000
-- No rows
SET VAR (var1, var2) = (SELECT c1, CAST(c1 AS STRING) FROM VALUES(1), (2) AS t(c1) WHERE 1=0);
SELECT var1, var2;
NULL NULL