如何在 BigQuery 中将数值转换为货币?

oli*_*via 8 currency salesforce rounding google-bigquery

我是 BigQuery 的新手,正在尝试将数值(来自 Salesforce)转换为货币(最好是美元价值)。

基本上,我目前拥有的是:

SELECT salesforce.Name,
       ROUND(salesforce.Amount,2) as Amount 

FROM table.salesforce
Run Code Online (Sandbox Code Playgroud)

显然,这只是将值四舍五入到小数点后两位。

Ale*_*aes 12

关于如何在 BigQuery 中将数值转换为货币值的问题,我建议您使用FORMAT()CONCAT()内置函数。

我发现在您的问题中您提到您想要将数值四舍五入到小数点后第二位,您可以使用FORMAT()来做到这一点,您可以在此处阅读更多相关信息。此外,要使用“$”符号,可以使用CONCAT()。下面是一个示例,其中我使用了一些虚拟数据来举例说明我所解释的内容:

  WITH
  data AS (
  SELECT
    20.21 AS num
  UNION ALL
  SELECT
    99999999.12 AS num
  UNION ALL
  SELECT
    12345 AS num )
  SELECT
  CONCAT('$ ',FORMAT("%'.2f", num)) AS new_num
  FROM
  data
Run Code Online (Sandbox Code Playgroud)

和输出:

在此输入图像描述

请注意,在FORMAT()函数中,我使用了"%'.2f",它将数字四舍五入到小数点后第二位。您可以使用以下指南找到有关表达式中每个字母/数字含义的更多信息。

作为奖励信息,货币值的格式为点“.”。是小数点分隔符,逗号“,”是分组分隔符。您可以使用正则表达式与REGEX_REPLACE()REPLACE()函数进行切换。如果是这种情况,请告诉我,以便我提供帮助。