NVarChar变量比较

LB4*_*B40 5 t-sql sql-server-2008

这可能真的很愚蠢.我不太了解T-SQL中的NVarChar比较..如果我尝试这样的话:

DECLARE @A NVARCHAR  = 'A';
DECLARE @AB NVARCHAR  = 'AB';
if @A = @AB
BEGIN
 PRINT N'A EQUALS AB';
END
Run Code Online (Sandbox Code Playgroud)

打印出"EQUALS AB"......你能告诉我为什么吗?

阅读本页并没有真正帮助......

谢谢.

Joe*_*lli 8

因为您声明nvarchar变量没有指定长度,所以它们默认为长度为1.因此两个变量只包含第一个字符'A'.

试试这个:

DECLARE @A NVARCHAR(10)  = 'A';
DECLARE @AB NVARCHAR(10)  = 'AB';

if @A = @AB
BEGIN
 PRINT N'A EQUALS AB';
END
Run Code Online (Sandbox Code Playgroud)