我正在使用with子句,最近我遇到了一个奇怪的问题。即使是简单的查询,我也会收到错误的语法错误,但我无法弄清楚原因。
每当我运行代码时,只需:
WITH table1 AS (Select value1, value2 from table1)
我在“')'附近找到了'不正确的语法'错误。
我之前没有遇到麻烦,所以我觉得我犯了一个非常明显的愚蠢错误,我只是没有抓住。谁能指出我做错了什么?
答案 0 :(得分:7)
这是一个CTE - 你需要在它的最后选择。
即。
WITH cte AS (
SELECT
value1,
value2
FROM table1
)
SELECT * FROM cte
此外,将CTE的名称与您从中拉出的表格相同,并不是一个好主意。你把它们都作为table1
。
答案 1 :(得分:1)
我认为您遗漏了 with as
的一部分,在您的情况下,with as
必须跟在 select
之后:
WITH table1 AS (Select value1, value2 from table) SELECT * FROM table1