更改bigquery中的列值

ara*_*ara 5 google-bigquery

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

Tim*_*sen 4

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

country_full | country_abbr
America      | USA
South Korea  | SA
Japan        | JP
Run Code Online (Sandbox Code Playgroud)

然后,您可以将当前表连接到该查找表以引入代码:

SELECT
    t1.*,
    t2.country_abbr
FROM yourTable t1
LEFT JOIN country_codes t2
    ON t1.country = t2.country_full;
Run Code Online (Sandbox Code Playgroud)

处理此问题的另一种方法(尽管可扩展性不太好)是使用表达式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;
Run Code Online (Sandbox Code Playgroud)