[SQL] Проверка на нуль?
если этот запрос используется в хранимой процедуре или ф-ции, то просто потом обработай значение сам (if @X = NULL) и т.д.
Делаю так:
PRINT 'DEBUG'
IF @XID = NULL PRINT 'NULL'
ELSE PRINT 'NOT NULL'
PRINT 'END DEBUG'
Результат:
DEBUG
NOT NULL
END DEBUG
Делаю так:
PRINT 'DEBUG'
IF @XID != NULL PRINT 'NOT NULL'
ELSE PRINT 'NULL'
PRINT 'END DEBUG'
Получаю:
DEBUG
NULL
END DEBUG
При том, что больше ничего не менялось!
Получается, что переменная не является ни NULL ни NOT NULL. Как это расценивать?!
Потому как NULL -- это ХЗ
IF @XID != NULL PRINT 'NOT NULL'не знаю, как в мсскл (это же он:? но скажем в постгресе проверка на нулл делается так :
if (xid is [not] null)
IF @X IS NULL
SET @X = 0
Так и есть. Спасибо.
ботаем троичную логику....
но при этом меня поле identity null не позволяет вводить два nullа
1) MSSQL - недостойная СУ(Р)БД
2) Нехрен пихать NULL в identity (primary key) поле...
ой я ощибся не identity а unique constraint
Оставить комментарий
Slavaga
Делаю что-то вроде этого:SET @XID = (SELECT Employees.EmployeeID FROM Employees, Users WHERE
LastName = @XLastName AND
FirstName = @XFirstName AND
Patronymic = @XPatronymic AND
GroupID = (SELECT GroupID FROM Groups WHERE GroupName = 'Group1'
После выполнения SELECT'а либо возвращается одно число - идентификатор, либо ничего не возвращается.
Как узнать, что ничего не возвратилось?!
Можно сделать так:
IF EXISTS SELECT (...) SET @XID = (SELECT ...)
Можно ли как-нить покороче?