какой вывод этого кода? - PullRequest
0 голосов
/ 30 апреля 2010

Я написал часть кода для вас, и я хочу знать результат, мне нужна ваша помощь, потому что нет никакого тела, чтобы помочь мне, и я думаю, что результат А, это правильно? спасибо.

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 ]

5 голосов
/ 30 апреля 2010

Почему бы вам самим не попробовать?

Вывод будет B, поскольку @v1 присваивается строка 'NULL', которая не совпадает со специальным NULL, означающим "нет значения"

1 голос
/ 30 апреля 2010

В MSSQL 2008 он возвращает B. Это потому, что @ v1 является строкой 'NULL', а не фактически нулем. Если вы измените его на

select @v1 = null

Тогда он вернется

0 голосов
/ 01 мая 2010

@ v2 имеет значение null, поскольку вы не присваиваете ему никакого значения. Вывод B ', потому что NULL не совпадает со строкой' NULL '

0 голосов
/ 30 апреля 2010

Я бы сказал, что это B, потому что = NULL и = 'NULL' - это две разные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...