为什么我在BigQuery中一直遇到SELECT列表不能为空的语法错误?
报错原因
- 触发报错的直接原因是
SELECT关键字后未指定任何要返回的字段,标准SQL语法要求SELECT从句必须明确列出查询返回的字段集合,不允许留空。 - 你的语句还存在额外的语法问题:引用「项目.数据集.表」这类标识符时不能用单引号包裹,BigQuery中需要用反引号
`标识这类资源路径,单引号仅能用于包裹字符串类型的取值。 - 隐性逻辑问题:
minutes_listening_during_experiment是数值类型字段,和字符串'60'做比较不符合规范,建议去掉单引号直接使用数值60比较。
修正方案
你可以根据实际查询需求选择对应写法:
- 若需要返回符合条件的所有字段,用
*代替全部字段:
SELECT * FROM `tfdalissabuck.assessment_01.experiment` WHERE experiment_cohort = 'treatment' AND minutes_listening_during_experiment > 60
- 若只需要返回指定字段,将对应字段名列在
SELECT之后即可:
SELECT user_id, experiment_cohort, minutes_listening_during_experiment FROM `tfdalissabuck.assessment_01.experiment` WHERE experiment_cohort = 'treatment' AND minutes_listening_during_experiment > 60
- 若仅需要校验符合条件的记录是否存在,不需要返回具体业务数据,可以写固定值占位:
SELECT 1 FROM `tfdalissabuck.assessment_01.experiment` WHERE experiment_cohort = 'treatment' AND minutes_listening_during_experiment > 60 LIMIT 1
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

