Re: Проблемы с ISNULL в T-SQL
От: nov  
Дата: 22.08.03 12:00
Оценка:
Здравствуйте, Oxy, Вы писали:

Oxy>Хочу выяснить это глюк MS или так должно быть

Oxy>Допустим есть запрос
Oxy>
Oxy>DECLARE @qqq BIGINT
Oxy>SELECT @qqq=ISNULL(Field,-1) FROM Table WHERE (bla, bla, bla)
Oxy>

Oxy>После исполнения запроса получаю @qqq = NULL , если не найдено ни одной записи удовлетворяющей условие. Почему? По логике должен же получить @qqq = -1. Или я чего то не понимаю?
Oxy>Но если перед запросом поставить SET @qqq=-1, то все нормально.

Все дело в том, что возвращается пустой рекордсет. А если так, то функция ISNULL просто не получает никакого аргумента, вот и все. Поэтому @qqq не меняется. Если Вы поставите перед запросом SET @qqq=-2, то и после запроса останется это же значение.

Jeka
Jeka
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.