【发布时间】:2020-02-22 02:00:08
【问题描述】:
我正在尝试运行一个查询,该查询返回地址列中空格之前的字母
SELECT col1,(Case When CHARINDEX(' ',address) = 0 then address Else LEFT(address,CHARINDEX(' ',address)-1) END) as streetNumber from table1
where stateID = 15
当我在 SQL Server Management Studio 中运行此查询时,它会运行,但在 Access 中运行它会给我:
查询表达式 '(Case WHEN) 中的语法错误(缺少运算符) CHARINDEX(' ',address) =0 然后地址 Else LEFT(address,CHARINDEX(' ',地址)-1) END)
但是没有缺少运算符。我不确定为什么会收到此错误。
【问题讨论】:
-
Access 无法处理查询中的 CASE。使用 IIf() 或 Switch() 或 Choose()。另外,CharIndex() 也可能没有被确认。
-
Access SQL 和 SQL Server SQL 是不一样的,所以在 SQL Server Management Studio (SSMS) 中你能做什么与任何事情都没有关系。 Access 有自己的各种 SQL,您不能使用它不支持的功能,例如
CASE和CHARINDEX。您需要改用 Access 支持的语法。 SSMS 仅适用于 SQL Server,SQL Server SQL 支持的内容与任何其他 SQL 变体无关。 -
^他们写的。如果您想/需要使用 SQL Server 语法,则可以改用 Pass-Through 查询。结果将是只读的。
标签: ms-access