我可以在 Bigquery 中确定数字和小数的长度吗?


CAST(CASE WHEN table_name1 NOT IN ('520','620')
THEN SUM(table_name2) ELSE 0 END
as numeric(15,2)) as Weight

我不知道如何以正确的方式确定数字和小数的长度。 Bigquery 是否具有与普通 SQL 代码相似的数字 (15,2(函数?

这在 BigQuery 中非常简单。 答案是精度为 38,小数位数为 9。

如文档所述:

NUMERIC数据类型是具有 38 位精度和 9 位十进制小数位数的精确数值。精度是数字包含的位数。小数位数是这些数字中有多少出现在小数点之后。

也就是说,BigQuery 在numeric/decimal方面不像其他数据库那样具有灵活性。

戈登·林诺夫提供的答案是正确的,您可以使用'round'将小数位限制为 2

。如果需要,可以使用SELECT查询中的ROUND()函数来获得包含两个小数位的输出。有关澄清,请检查给定的链接 [1]。

查询示例:

SELECT
Id,
ROUND(size,2) As Size
FROM 
`bigquery-public-data.github_repos.contents`
LIMIT 100

[1] https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#round

最新更新