不断在')'附近收到错误语法错误。 (102)(SQLExecDirectW)

时间:2019-10-08 05:20:32

标签: sql sql-server tsql common-table-expression

刚开始学习CTE,按照教程中的所有内容进行操作,但我一直遇到错误

  

')'附近的语法不正确。 (102)(SQLExecDirectW)

这是Users表:

enter image description here

这是我的代码:

WITH BannedCTE
AS
(SELECT Users_Id
FROM Users
WHERE Users.Banned = "Yes");

2 个答案:

答案 0 :(得分:1)

来自官方docs

  

CTE后面必须是单个SELECT,INSERT,UPDATE或DELETE   引用部分或全部CTE列的语句。 CTE也可以   在CREATE VIEW语句中指定为定义SELECT的一部分   视图的陈述。

因此,请尝试以下操作:

;WITH BannedCTE AS 
(
    SELECT Users_Id 
    FROM Users
    WHERE Users.Banned = 'Yes'
)
SELECT * 
FROM BannedCTE ;

答案 1 :(得分:0)

在下面的查询中尝试此操作。您应该将CTE与select,DML操作(插入,更新,删除)一起使用。对字符串使用单引号。

WITH BannedCTE AS (SELECT Users_Id FROM Users WHERE Users.Banned = 'Yes')
select * from BannedCTE ;