スター(*)句
説明
FROM句内の参照可能なすべての列、またはFROM句内の特定のテーブル参照の列またはフィールドに名前を付けるためのショートカットです。スター句はSELECTリストで最も頻繁に使用されます。Sparkは、SELECTリストおよびWHERE句内の関数呼び出しおよび特定のn項演算でもその使用をサポートしています。
構文
[ name . ] * [ except_clause ]
except_clause
EXCEPT ( { column_name | field_name } [, ...] )
パラメータ
-
name
存在する場合、名前を付ける列またはフィールドを指定された参照可能なフィールド、列、またはテーブル内のものに限定します。
-
except_clause
select_star句で特定された参照可能な列セットから、オプションで列またはフィールドを削除します。
-
column_name
参照できる列のセットの一部である列。
-
field_name
参照できる列のセットの列内のフィールドへの参照です。STRUCTのすべてのフィールドを除外すると、結果は空のSTRUCTになります。各名前は、参照できる列のセットに含まれる列、またはそのフィールドを参照する必要があります。そうでない場合、Spark SQLはUNRESOLVED_COLUMNエラーを発生させます。名前が重複したり一意でなかったりする場合、SparkはEXCEPT_OVERLAPPING_COLUMNSエラーを発生させます。
-
例
-- Return all columns in the FROM clause
SELECT * FROM VALUES(1, 2) AS TA(c1, c2), VALUES('a', 'b') AS TB(ca, cb);
1 2 a b
-- Return all columns from TA
SELECT TA.* FROM VALUES(1, 2) AS TA(c1, c2), VALUES('a', 'b') AS TB(ca, cb);
1 2
-- Return all columns except TA.c1 and TB.cb
SELECT * EXCEPT (c1, cb) FROM VALUES(1, 2) AS TA(c1, c2), VALUES('a', 'b') AS TB(ca, cb);
2 a
-- Return all columns, but strip the field x from the struct.
SELECT TA.* EXCEPT (c1.x) FROM VALUES(named_struct('x', x, 'y', 'y'), 2) AS (c1, c2), VALUES('a', 'b') AS TB(ca, cb);
{ y } 2 a b
-- Return the first not-NULL column in TA
SELECT coalesce(TA.*) FROM VALUES(1, 2) AS TA(c1, c2), VALUES('a', 'b') AS TB(ca, cb);
1
-- Return 1 if any column in TB contains a 'c'.
SELECT CASE WHEN 'c' IN (TB.*) THEN 1 END FROM VALUES(1, 2) AS TA(c1, c2), VALUES('a', 'b') AS TB(ca, cb);
NULL
-- Return all column as a single struct
SELECT (*) FROM VALUES(1, 2) AS TA(c1, c2), VALUES('a', 'b') AS TB(ca, cb);
{ c1: 1, c2: 2, ca: a, cb: b }
-- Flatten a struct into individual columns
SELECT c1.* FROM VALUES(named_struct('x', 1, 'y', 2)) AS TA(c1);
1 2