【发布时间】:2017-10-23 20:21:09
【问题描述】:
我已经看到有关如何在 BigQuery 中将 add commas 转换为数字的信息,但我得到的是美元金额结果
$15,000
$25,000
$10,000
我想转换成纯数字
15000
25000
10000
我没有找到任何 BigQuery 函数来进行这样的格式更改。
【问题讨论】:
标签: google-bigquery strip
我已经看到有关如何在 BigQuery 中将 add commas 转换为数字的信息,但我得到的是美元金额结果
$15,000
$25,000
$10,000
我想转换成纯数字
15000
25000
10000
我没有找到任何 BigQuery 函数来进行这样的格式更改。
【问题讨论】:
标签: google-bigquery strip
许多不同的方式 - 例如下面的一个使用正则表达式来删除 $ 和 , 字符
#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