You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2022中WITH子句与LAG函数语法错误求助

SQL Server 2022 CTE语法错误排查

问题详情

使用SQL Server 2022(数据库兼容级别160)执行以下CTE语句时触发语法错误:

WITH CTE AS
(
    SELECT 
        Id,
        LAG(Id) OVER (ORDER BY Id) AS previous_id,
        Date,
        LAG(Date) OVER (ORDER BY Id) AS previous_date
    FROM 
        dbo.Bellabeat_daily 
)

错误提示:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near ')'.

错误指向FROM dbo.Bellabeat_daily所在行,已确认列名和表名无误,需要排查方向。

排查建议

  • 补充CTE后续查询语句:CTE仅为临时结果集的定义,必须在其后紧跟使用该CTE的查询逻辑(例如SELECT * FROM CTE),不能单独定义CTE就终止语句,这是此类错误最常见的原因。
  • 清除特殊字符:检查FROM行及前后是否存在不可见的特殊字符(如全角空格、异常制表符),可尝试手动重新输入该行代码,避免复制粘贴带入的隐藏字符干扰语法解析。
  • 处理关键字冲突:Date是SQL Server保留关键字,若实际代码中未用方括号包裹,尝试修改为[Date],避免关键字解析异常。
  • 确认兼容级别生效:执行以下语句验证数据库兼容级别是否确实为160:
    SELECT name, compatibility_level FROM sys.databases WHERE name = '你的数据库名称';
    

内容的提问来源于stack exchange,提问作者Alvaro C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:17:34