这可能真的很愚蠢。我不太了解 T-SQL 中的 NVarChar 比较。
如果我尝试这样的事情:
DECLARE @A NVARCHAR = 'A';
DECLARE @AB NVARCHAR = 'AB';
if @A = @AB
BEGIN
PRINT N'A EQUALS AB';
END
'A EQUALS AB'被打印出来......你能告诉我为什么吗?
阅读本文 page真的没有帮助...
谢谢。
最佳答案
因为您声明的 nvarchar 变量没有指定长度,所以它们的默认长度为 1。因此两个变量都只包含第一个字符 'A'
.
试试这个:
DECLARE @A NVARCHAR(10) = 'A';
DECLARE @AB NVARCHAR(10) = 'AB';
if @A = @AB
BEGIN
PRINT N'A EQUALS AB';
END
关于sql-server-2008 - NVarChar 变量比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329803/