【问题标题】:Can we cast the type in BigQuery?我们可以在 BigQuery 中转换类型吗?
【发布时间】:2014-05-17 18:18:40
【问题描述】:

按照我的查询:

从 [datasetName.tableName] 中选择 SQRT((D_o_latitude - T_s_lat)^2+(D_o_longitude - T_s_long)^2)/0.00001

我收到错误为错误:函数 SUBTRACT 中的参数类型不匹配:'D_o_latitude' 是字符串类型,'T_s_lat' 是字符串类型

所以让我知道我们可以在查询中将字符串类型转换为浮点数吗?比如转换数据类型,我无法更改数据类型

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    使用标准 SQL,您可以使用 CAST 函数,例如。 cast(numStringColumn as int64)。请注意standard SQL type names,因为它们与旧版 SQL 并不完全相同。

    【讨论】:

      【解决方案2】:

      在旧版 SQL 中,您可以使用以下函数在 BigQuery 中转换类型:INTEGER()STRING()BOOLEAN()TIMESTAMP()FLOAT()

      对标准 SQL 使用 cast()(参见 opensourcegeek 的回答)。

      在你的情况下,你可以写:

      SELECT SQRT((INTEGER(D_o_latitude) - T_s_lat)^2+(INTEGER(D_o_longitude) - T_s_long)^2)/0.00001 
      FROM [datasetName.tableName]
      

      【讨论】:

      • 这仅适用于 BigQuery 的旧版 SQL,不适用于其最新的标准 SQL。将 CAST 用于标准 SQL,如下所述。
      猜你喜欢
      • 2022-08-17
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 2022-01-17
      • 2011-06-02
      • 2016-05-07
      相关资源
      最近更新 更多