更改bigquery中的列值



我有一个表,其中有一列具有不同的值,如美国、韩国、日本等。我想将这些值替换为美国=美国、韩国=SA、日本=JP。代码是什么?

处理这一问题的最佳方法可能是维护一个单独的表,该表将完整的国家名称映射到它们的两个字母代码:

country_full | country_abbr
America      | USA
South Korea  | SA
Japan        | JP

然后,您可以将当前表加入此查找表,以引入代码:

SELECT
t1.*,
t2.country_abbr
FROM yourTable t1
LEFT JOIN country_codes t2
ON t1.country = t2.country_full;

处理这一问题的另一种方法虽然不是很可扩展,但可以使用CASE表达式来引入代码:

SELECT
country,
CASE country WHEN 'America'     THEN 'USA'
WHEN 'South Korea' THEN 'SA'
WHEN 'Japan'       THEN 'JP'
ELSE 'Unknown' END As code
FROM yourTable;