【问题标题】:How to strip non-numeric characters from BigQuery results如何从 BigQuery 结果中去除非数字字符
【发布时间】:2017-10-23 20:21:09
【问题描述】:

我已经看到有关如何在 BigQuery 中将 add commas 转换为数字的信息,但我得到的是美元金额结果

$15,000
$25,000
$10,000

我想转换成纯数字

15000
25000
10000

我没有找到任何 BigQuery 函数来进行这样的格式更改。

【问题讨论】:

    标签: google-bigquery strip


    【解决方案1】:

    许多不同的方式 - 例如下面的一个使用正则表达式来删除 $, 字符

    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT '$15,000' AS dollar_amount UNION ALL
      SELECT '$25,000' UNION ALL
      SELECT '$10,000' 
    )
    SELECT 
      dollar_amount, 
      CAST(REGEXP_REPLACE(dollar_amount, r'\$|,', '') as INT64) amount
    FROM `project.dataset.table`
    

    【讨论】:

    • 另一个想法是使用REGEXP_EXTRACT_ALL[0-9]+,然后使用ARRAY_TO_STRING 将输出连接为更通用的解决方案,以防有其他无关字符。
    • 或只是 CAST(REGEXP_REPLACE(dollar_amount, r'[^0-9.]', '') AS INT64) 以避免额外的 ARRAY 相关内容
    • 这很棒。出于某种原因,它无法识别我想要转换为的任何 INT 类型,但即使在其自身上完美地执行 REGEXP_REPLACE() 也是如此。无论如何,当我传递数据时,它都会以数字的形式被读入。
    • 如果你使用INT - 你应该使用'INT64'。同时 - 如果您的金额有小数 - 您应该使用 FLOAT64 而不是 INT64
    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2010-09-12
    • 2011-09-13
    相关资源
    最近更新 更多