есть ли функция в SQL Server 2005, который возвращает ПУСТОЙ УКАЗАТЕЛЬ [или булево значение], если бы какой-либо из аргументов (какого-либо типа) является ПУСТЫМ, который сохранил бы меня от записи IF a IS NULL OR b IS NULL OR c IS NULL ...
.
Вот довольно неприятный способ сделать это:
set ansi_nulls off
if (null in (a, b, c, d, e) print 'got a null'
set ansi_nulls on
Поскольку NULL распространяются, вы можете сделать:
(cola + colb + colc) is null
при условии, что все совместимые типы данных
Как насчет ...
SELECT
CASE WHEN NULLIF(ISNULL(@testA, 1), @testA)
+ NULLIF(ISNULL(@testB, 1), @testB)
+ NULLIF(ISNULL(@testC, 1), @testC) > 0
THEN 'Got NULL'
ELSE 'NO NULL'
END
Нет, ближайшая к вам функция - это NULLIF (), но это не то, что вам нужно. Я бы просто придерживался здесь оператора OR.