gpt4 book ai didi

google-bigquery - Big Query 中的 CAST 和 REPLACE

转载 作者:行者123 更新时间:2023-12-02 14:53:24 32 4
gpt4 key购买 nike

我在 BigQuery 的表中有一个名为 Delivered_Cost 的列。对于没有成本的行,其中有“-”。我想用 0 替换它,然后将该列转换为 float ,以便我可以用它进行一些聚合。但是,当我使用下面的代码时,我遇到了问题。即使某些行具有针对它们的值,它们也会更改为 null。我如何编辑下面的代码,以便我可以在同一个查询中替换和转换?

SQL代码

选择交付成本,

将 (Consideration_Set, "0", "Undefined") 替换为 Final_Consideration_Set,CAST(REPLACE(DELIVERED_COST, "-", "0") as float) as Final_Delivered,

来自 [ table ]

限制 100;

enter image description here

最佳答案

这里的问题是数据中的千位分隔符(逗号)。您可以通过像这样更改查询(删除逗号)来解决它:

SELECT
delivered_cost,
REPLACE(Consideration_Set, '0', 'undefined') Final_Consideration_Set,
CAST(REPLACE(REPLACE(DELIVERED_COST, ',',''), '-', '0') AS FLOAT) Final_Delivered
FROM [table]

此外,建议在 BigQuery 中使用标准 SQL 而不是旧版 SQL。您的查询的标准 SQL 版本是:

#standardSQL
SELECT
delivered_cost,
REPLACE(Consideration_Set, '0', 'undefined') Final_Consideration_Set,
SAFE_CAST(REPLACE(REPLACE(DELIVERED_COST, ',',''), '-', '0') AS FLOAT64) Final_Delivered
FROM `table`

关于google-bigquery - Big Query 中的 CAST 和 REPLACE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54341149/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com