Google bigquery 如何在BigQuery中将float强制转换为没有指数的字符串

Google bigquery 如何在BigQuery中将float强制转换为没有指数的字符串,google-bigquery,Google Bigquery,我在BigQuery表中有浮点数据,如5302014.2和5102014.4 我希望运行以字符串格式返回值的BigQuery SQL,但以下SQL会生成此结果: select a, string(a) from my_table 5302014.2 "5.30201e+06" 5102014.4 "5.10201e+06" 如何重写SQL以返回: 5302014.2 "5302014.2" 5102014.4 "5102014.4" (这不是一个好方法,但更好的方法

我在BigQuery表中有浮点数据,如5302014.2和5102014.4

我希望运行以字符串格式返回值的BigQuery SQL,但以下SQL会生成此结果:

select a, string(a) from my_table

5302014.2    "5.30201e+06"
5102014.4    "5.10201e+06"
如何重写SQL以返回:

5302014.2    "5302014.2"
5102014.4    "5102014.4"

(这不是一个好方法,但更好的方法是发布一个很好的功能请求)

使用标准SQL没有问题

$ bq query '#standardSQL
SELECT a, CAST(a AS STRING) AS a_str FROM UNNEST(ARRAY[530201111114.2, 5302014.4]) a'
+-------------------+----------------+
|         a         |     a_str      |
+-------------------+----------------+
|         5302014.4 | 5302014.4      |
| 5.302011111142E11 | 530201111114.2 |
+-------------------+----------------+

就使用GBQ而言,将遗留sql转换为标准sql确实是最好的方法。标准sql的速度要快得多,并且有更好的功能实现

对于您的用例,最好使用标准sql和CAST(作为字符串)

$ bq query '#standardSQL
SELECT a, CAST(a AS STRING) AS a_str FROM UNNEST(ARRAY[530201111114.2, 5302014.4]) a'
+-------------------+----------------+
|         a         |     a_str      |
+-------------------+----------------+
|         5302014.4 | 5302014.4      |
| 5.302011111142E11 | 530201111114.2 |
+-------------------+----------------+