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

SQL Server 2008 R2执行含双AND的SELECT语句报错求助

SQL Server 2008 R2 语法错误排查与解决

问题场景

同一段SELECT语句在SQL Server 2018及以上版本可正常执行,但在SQL Server 2008 R2(v10.5)中抛出语法错误。移除第二个AND条件后能正常运行,但业务逻辑要求保留该条件。

执行的SQL语句

SELECT 
    SUM(Amount) AS "KrediKartı" 
FROM 
    [SAMBA4].[dbo].[Payments] 
WHERE 
    Date BETWEEN '2022-10-29 03:00:00.000' AND '2022-10-30 03:00:00.617' 
    AND PaymentTypeId = 2

报错信息

Msg 102, Level 15, State 1, Line 1

语法错误 near ' '

问题原因

错误提示中的' '是全角空格(非ASCII标准空格字符)。SQL Server 2008 R2对这类特殊空白字符的解析兼容性较差,而新版本SQL Server优化了特殊字符处理逻辑,因此不会触发错误。这种特殊空格通常是复制粘贴时带入,或是输入时误切换成全角模式导致的。

解决方案

  1. 替换特殊空格:将第二个AND前后的所有空白字符替换为标准半角空格(ASCII 32)
  2. 重新输入条件行:手动敲写AND PaymentTypeId = 2整行,彻底避免特殊字符残留
  3. 编辑器批量处理:用文本编辑器的"查找替换"功能,将所有非标准空白字符替换为正常空格

修改后重新执行语句,即可同时满足语法要求和业务条件。

内容的提问来源于stack exchange,提问作者Onur UZEL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:05:52