【问题标题】:Keeps getting error Incorrect syntax near ')'. (102) (SQLExecDirectW)不断收到错误 ')' 附近的语法不正确。 (102) (SQLExecDirectW)
【发布时间】:2019-10-08 05:20:32
【问题描述】:
刚开始学习 CTE,按照教程中的所有内容进行操作,但我一直遇到错误
')' 附近的语法不正确。 (102) (SQLExecDirectW)
这是Users 表:
这是我的代码:
WITH BannedCTE
AS
(SELECT Users_Id
FROM Users
WHERE Users.Banned = "Yes");
【问题讨论】:
标签:
sql
sql-server
tsql
common-table-expression
【解决方案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 ;
【解决方案2】:
试试下面的查询。您应该将 CTE 与选择、DML 操作(插入、更新、删除)一起使用。对字符串使用单引号。
WITH BannedCTE AS (SELECT Users_Id FROM Users WHERE Users.Banned = 'Yes')
select * from BannedCTE ;