【问题标题】:Incorrect syntax near ')'. SQL Server')' 附近的语法不正确。 SQL 服务器
【发布时间】:2020-01-08 13:13:30
【问题描述】:

我有导致此错误的 SQL Server 查询

')' 附近的语法不正确

在我用 C# 编写的 Windows 窗体应用程序中。

我认为这可能会以不同的方式导致,我一直在寻找语法错误的位置。似乎错误就在附近:

datetime2) >= CAST("12/30/1996 12:00:00 AM" as datetime2) and upper(status

这是我的完整查询

select * 
from 
    (select 
         PMSEQ, SWERK, EQUNR,
         MPTYPE, DATE, TIME,
         RECDC, IDIFF, READR,
         IIND, QMART 
     from 
         P_PM_TBLIF240 
     where 
         cast(concat(concat(date, ' '), time) as datetime2) >= cast('12/30/1996 12:00:00 AM' as datetime2) 
         and upper(status) = 'ACTIVE') a  
where 
    PMSEQ not in ()

希望有人帮忙离开这里

提前谢谢你

【问题讨论】:

  • 请不要添加不必要的标签。这与 C# 没有任何关系,更不用说 WinForms 用户界面了。

标签: sql sql-server


【解决方案1】:

问题是not in ()是空的。

运行下面的脚本:

select * from (select PMSEQ,SWERK,EQUNR,MPTYPE,DATE,TIME,RECDC,IDIFF,READR,IIND,QMART from P_PM_TBLIF240 where CAST(concat(concat(date,' '), time) as datetime2) >= CAST('12/30/1996 12:00:00 AM' as datetime2) and upper(status) = 'ACTIVE') a  where PMSEQ not in ('1')

因为我没有数据,所以我猜测 PMSEQ 是文本。 告诉我

【讨论】:

  • 我认为你可以根据 w3school sql 语法教程在 not in() 中放一个空
  • @Berzerk25:我认为你的理解是错误的。空集在 SQL 中没有意义。引用 w3school 作为权威是没有用的。试试 SQL Server Books on Line (Google it),它是 SQL Server 的官方文档。
  • 是的,你的答案是正确的,。谢谢你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多