语法错误:应为“(”或“,”或关键字 SELECT 但脚本结束
Posted
技术标签:
【中文标题】语法错误:应为“(”或“,”或关键字 SELECT 但脚本结束【英文标题】:Syntax error: Expected "(" or "," or keyword SELECT but got end of script 【发布时间】:2021-06-07 09:36:47 【问题描述】:我只是按照课程中的查询进行操作,但我不知道为什么会收到错误消息。
语法错误:应为“(”或“,”或关键字 SELECT,但已结束 [13:6] 处的脚本
With
longest_used_bike AS (
SELECT
Bikeid,
SUM(duration_minutes) AS trip_duration
FROM
bigquery-public-data.austin_bikeshare.bikeshare_trips
GROUP BY
Bikeid
ORDER BY
Trip_duration DESC
LIMIT 1
)
为什么会出现这个错误?
【问题讨论】:
什么是“课程”?请分享完整和准确的查询,以及您解决问题的尝试,并为您正在使用的数据库系统添加标签 您需要“使用”这个公用表表达式。所以请在 SELECT * FROMlongest_used_bike 之后添加) 您使用的是哪种 DBMS 产品? “SQL”只是所有关系数据库都使用的一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag。 Why should I tag my DBMS 请通过编辑为您的问题添加所有说明 【参考方案1】:您收到此错误是因为 CTE(即 WITH
语句)只是查询的一部分。它后面需要跟另一个语句,通常是SELECT
。
也许你打算:
With longest_used_bike AS (
SELECT Bikeid, SUM(duration_minutes) AS trip_duration
FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
GROUP BY Bikeid
ORDER BY Trip_duration DESC
LIMIT 1
)
select *
from longest_used_bike;
我还假设您正在使用 BigQuery。表名需要用反引号括起来。
【讨论】:
【参考方案2】:我有同样的问题。我了解到 CTE(WITH 子句)不能作为独立的代码段工作——它是更大语句的一部分。要完成您的代码,您必须添加一个 SELECT 语句。
这是我认为会发生的事情:
-
WITH 子句只创建您的临时表
您需要另一个语句来操作或查询临时表,SELECT 通常可以工作。
WITH longest_used_bike AS (
SELECT
bikeid,
SUM(duration_minutes) AS trip_duration
FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
GROUP BY
bikeid
ORDER BY trip_duration DESC
)
/* add your SELECT statement here */
SELECT *
FROM longest_used_bike;
/* or whatever else */
【讨论】:
【参考方案3】:我在课程中也遇到过这个问题。
来自课程,写在代码的形象下。 “如果你现在运行它,它会返回一个错误,因为你还没有编写任何查询。现在,是时候编写一个查询来标识这辆自行车的出发站了。”
要解决此问题,请添加另一个 SELECT 语句。
【讨论】:
请添加建议的代码。【参考方案4】:我在今天的课程中遇到了同样的问题。通过在末尾添加 SELECT 语句将解决此问题。在这种情况下,我们只是创建了一个临时表,而没有提供任何查询来使用它,这就是我们收到此错误的原因。
您可以在此处找到有关语法的更多信息:https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review【参考方案5】:该活动在创建临时表后有一条注释,上面写着“如果你现在运行它,它会返回一个错误,因为你还没有编写任何查询。现在,它是是时候编写一个查询来识别这辆自行车的出发站了。” 您只需要继续阅读活动,您就会明白为什么会发生错误。
建议在开始之前先看一下活动,这样您就会知道在完成活动时会遇到什么。
【讨论】:
这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于语法错误:应为“(”或“,”或关键字 SELECT 但脚本结束的主要内容,如果未能解决你的问题,请参考以下文章
pg:select * from analyse 语法错误 在 "analyse" 或附近的 LINE 1: select * from analyse
获取 Rails 错误“语法错误,意外 tSYMBEG,需要关键字_do 或 '' 或 '('”
SQLSTATE [42000]:语法错误或访问冲突:sql select 语句中的 1064
获取 PSQLException:错误:在带有 Postgres 的 spark jdbc 中使用查询而不是表名时在“SELECT”处或附近出现语法错误