【发布时间】:2022-11-18 11:05:34
【问题描述】:
在 SQL Server 中(我想是 2018 年?我不知道怎么说)我的变量在 WHERE 的 NVARCHAR. 子句中不起作用比较应该返回值,但它什么都不返回。如果我只是手动输入声明的文本,它就会突然起作用并返回值。没有任何逻辑上的理由这应该有任何不同,类型都是 NVARCHARS。它为我工作的日期和数字。
以下 SQL Server 代码可以正常工作并返回结果:
SELECT * FROM table WHERE Column = 'text'
但是,当我使用初始 declare 语句时,以下代码失败了:
DECLARE @Class AS NVARCHAR = 'text'
SELECT * FROM table WHERE Column = @Class
我无法让变量在 WHERE 子句中工作,即使我已经确认该列是 NVARCHAR。我声明的其他参数工作正常它似乎是 NVARCHAR 给我问题。
有什么我想念的吗?
【问题讨论】:
-
尝试在 DBFiddle 或 SQLFiddle 中重现此问题并在此处发布链接。
-
顺便说一句,
'text'是一个varchar文字,而N'text是一个nvarchar文字。 -
select @@version获取版本。
标签: sql sql-server declare nvarchar