BigQuery执行SQL报Expected end of input but got keyword WHERE错误求助
错误原因
- 子句顺序违规:SQL的子句执行顺序固定为
SELECT→FROM→WHERE→GROUP BY→HAVING→ORDER BY→LIMIT,你将LIMIT写在WHERE之前,导致数据库解析到WHERE关键字时判定语法非法 - 表名引用错误:单引号仅用于标注字符串类型的值,表名、字段名这类标识符不能用单引号包裹
- 字段查询不符合需求:你需要返回
row、product两列,使用SELECT *会返回全部字段,不符合输出要求
修正后的SQL代码
SELECT row, product FROM customer_data.customer_purchase WHERE product = 'fan' LIMIT 1000;
补充说明
如果使用的数据库中row属于保留关键字,给该字段名加上对应数据库的标识符转义符即可,例如MySQL、BigQuery等使用反引号:
SELECT `row`, product FROM customer_data.customer_purchase WHERE product = 'fan' LIMIT 1000;
内容的提问来源于stack exchange,提问作者karan Sharma_5017
相关产品推荐
相关产品推荐

