将 CASE 语句列添加到现有 GBQ table
Add CASE statement column to existing GBQ table
假装我有一个 GBQ table:
SELECT
'city_A' AS city,
15 AS score
UNION ALL
SELECT
'city_A' AS city,
17 AS score
UNION ALL
SELECT
'city_B' AS city,
8 AS score
我想添加带有 CASE 语句的新列,例如:
CASE
WHEN 'city_A' THEN'LA'
WHEN 'city_B' THEN 'PH'
ELSE NULL END AS iso_code
如何add/generate呢?使用 INSERT 我只能插入指定所有约束的空白列,不是吗?
您需要更新。假设您的 table 已经有一个 iso_code
列,那么使用:
UPDATE yourTable
SET iso_code = CASE city WHEN 'city_a' THEN 'LA'
WHEN 'city_b' THEN 'PH' END
WHERE city IN ('city_a', 'city_b');
也就是说,如果 BigQuery 支持的话,您的 iso_code
列真的感觉像是生成的列。
假装我有一个 GBQ table:
SELECT
'city_A' AS city,
15 AS score
UNION ALL
SELECT
'city_A' AS city,
17 AS score
UNION ALL
SELECT
'city_B' AS city,
8 AS score
我想添加带有 CASE 语句的新列,例如:
CASE
WHEN 'city_A' THEN'LA'
WHEN 'city_B' THEN 'PH'
ELSE NULL END AS iso_code
如何add/generate呢?使用 INSERT 我只能插入指定所有约束的空白列,不是吗?
您需要更新。假设您的 table 已经有一个 iso_code
列,那么使用:
UPDATE yourTable
SET iso_code = CASE city WHEN 'city_a' THEN 'LA'
WHEN 'city_b' THEN 'PH' END
WHERE city IN ('city_a', 'city_b');
也就是说,如果 BigQuery 支持的话,您的 iso_code
列真的感觉像是生成的列。