【问题标题】: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 ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多