Инверсия ОБЪЕДИНЯЕТ

есть ли функция в SQL Server 2005, который возвращает ПУСТОЙ УКАЗАТЕЛЬ [или булево значение], если бы какой-либо из аргументов (какого-либо типа) является ПУСТЫМ, который сохранил бы меня от записи IF a IS NULL OR b IS NULL OR c IS NULL ....

11
задан ercan 22 April 2010 в 08:16
поделиться

4 ответа

Вот довольно неприятный способ сделать это:

set ansi_nulls off
if (null in (a, b, c, d, e) print 'got a null'
set ansi_nulls on
5
ответ дан 3 December 2019 в 10:43
поделиться

Поскольку NULL распространяются, вы можете сделать:

(cola + colb + colc) is null

при условии, что все совместимые типы данных

2
ответ дан 3 December 2019 в 10:43
поделиться

Как насчет ...

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
0
ответ дан 3 December 2019 в 10:43
поделиться

Нет, ближайшая к вам функция - это NULLIF (), но это не то, что вам нужно. Я бы просто придерживался здесь оператора OR.

1
ответ дан 3 December 2019 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: