使用CAST函数执行排序SQL时出现语法错误,请求协助排查
问题分析与修正
语法错误原因
- 表名引用错误:BigQuery中,
项目.数据集.表名这类标识符不能用单引号(')包裹,单引号仅用于字符串常量,正确做法是用反引号(`)包裹标识符,若标识符无特殊字符也可直接省略引号。 - 排序方向不符需求:原语句用了
DESC(降序),但你需要的是升序,应改为ASC,或者直接省略(SQL默认排序规则为升序)。
修正后的SQL语句
方式1:保留CAST表达式排序
SELECT CAST(purchase_price AS FLOAT64) FROM `peppy-generator-406617.customer_data.customer_purchase` ORDER BY CAST(purchase_price AS FLOAT64) ASC
方式2:使用别名简化语句(可读性更强)
给转换后的字段起别名,排序时直接引用别名:
SELECT CAST(purchase_price AS FLOAT64) AS purchase_price_float FROM `peppy-generator-406617.customer_data.customer_purchase` ORDER BY purchase_price_float ASC
若不需要显式声明升序,也可省略ASC,效果一致:
SELECT CAST(purchase_price AS FLOAT64) AS purchase_price_float FROM `peppy-generator-406617.customer_data.customer_purchase` ORDER BY purchase_price_float
内容的提问来源于stack exchange,提问作者Biswajit Das
相关产品推荐
相关产品推荐

