这段代码的输出是什么?

时间:2010-04-30 14:31:37

标签: sql database

我已经为你提供了一部分代码,我想知道输出,我需要你的帮助,因为没有任何机构可以帮助我,我认为输出是A,这是正确的吗?感谢。

declare @v1 varchar(20),@v2 varchar(20)
select @v1 = 'NULL'
if @v1 is null and @v2 is null
select 'A'
else
select 'B'

编辑:@ v2的价值是多少?感谢

4 个答案:

答案 0 :(得分:5)

你为什么不亲自尝试?

输出将是B,因为@v1被分配了一个字符串'NULL',它与特殊的NULL不同,意思是“没有值”

答案 1 :(得分:1)

在MSSQL 2008中,它返回B.这是因为@ v1是字符串'NULL',实际上不是null。如果将其更改为

select @v1 = null

然后它将返回A

答案 2 :(得分:0)

我说这是B,因为= NULL= 'NULL'是两回事。

答案 3 :(得分:0)

@ v2为null,因为您没有为其分配任何值。 输出为B'因为NULL与字符串'NULL'

不同