使用Clause,'附近的语法不正确。 (SQL Server 2016)

时间:2017-07-28 15:02:36

标签: sql sql-server

我正在使用with子句,最近我遇到了一个奇怪的问题。即使是简单的查询,我也会收到错误的语法错误,但我无法弄清楚原因。

每当我运行代码时,只需:

WITH table1 AS (Select value1, value2 from table1)

我在“')'附近找到了'不正确的语法'错误。

我之前没有遇到麻烦,所以我觉得我犯了一个非常明显的愚蠢错误,我只是没有抓住。谁能指出我做错了什么?

2 个答案:

答案 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