Google bigquery 如何在BigQuery中将float强制转换为没有指数的字符串
我在BigQuery表中有浮点数据,如5302014.2和5102014.4 我希望运行以字符串格式返回值的BigQuery SQL,但以下SQL会生成此结果: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" (这不是一个好方法,但更好的方法
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 |
+-------------------+----------------+