刚开始学习CTE,按照教程中的所有内容进行操作,但我一直遇到错误
')'附近的语法不正确。 (102)(SQLExecDirectW)
这是Users
表:
这是我的代码:
WITH BannedCTE
AS
(SELECT Users_Id
FROM Users
WHERE Users.Banned = "Yes");
答案 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 ;