適用対象:
Databricks SQL
Databricks Runtime
クエリ内で使用するインライン一時テーブルを生成します。
構文
VALUES {expression | ( expression [, ...] ) } [, ...] [table_alias]
SELECT expression [, ...] [table_alias]
パラメーター
各タプルは 1 行を構成します。
複数の行がある場合は、各タプル内のフィールドの数が一致する必要があります。
VALUES 構文を使用するときに、タプルが指定されていない場合、各式は 1 つのフィールド タプルに等しくなります。
SELECT 構文を使用するときに、すべての式が 1 行の一時テーブルを構成します。
各タプルの n 番目のフィールドは、最も共通しない型を共有する必要があります。
table_alias で列名を指定する場合、その数はタプルごとの式の数と一致する必要があります。
結果は、各列の型が一致するタプル フィールドの最も一般的でない型である一時テーブルです。
行の列数が異なる場合、Azure Databricksは INVALID_INLINE_TABLE を発生させます。NUM_COLUMNS_MISMATCH。 分析時に式を評価できない場合、Azure Databricksは INVALID_INLINE_TABLE を発生させます。CANNOT_EVALUATE_EXPRESSION_IN_INLINE_TABLE。
一般的なエラー状態
- INVALID_INLINE_TABLE。CANNOT_EVALUATE_EXPRESSION_IN_INLINE_TABLE
- INVALID_INLINE_TABLE。INCOMPATIBLE_TYPES_IN_INLINE_TABLE
- INVALID_INLINE_TABLE。NUM_COLUMNS_MISMATCH
例
-- single row, without a table alias
> VALUES ("one", 1);
one 1
-- Multiple rows, one column
> VALUES 1, 2, 3;
1
2
3
-- three rows with a table alias
> SELECT data.a, b
FROM VALUES ('one', 1),
('two', 2),
('three', NULL) AS data(a, b);
one 1
two 2
three NULL
-- complex types with a table alias
> SELECT a, b
FROM VALUES ('one', array(0, 1)),
('two', array(2, 3)) AS data(a, b);
one [0, 1]
two [2, 3]
-- Using the SELECT syntax
> SELECT 'one', 2
one 2
-- Rows have different numbers of columns.
> VALUES (1, 2), (3);
Error: INVALID_INLINE_TABLE