Подтвердить что ты не робот

Есть ли противоположная функция ISNULL в sql-сервере? Делать не ноль?

У меня есть этот код в моей инструкции select

ISNULL(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',

Но я хочу посмотреть, не является ли "a.PolicySignedDateTime" не нулевым. Есть ли простая функция для этого, которая не включает использование инструкции "if"?

Приветствия ребята

4b9b3361

Ответ 1

Вы должны использовать CASE

SELECT CASE WHEN Field IS NOT NULL
    THEN 'something'
    ELSE 'something else'
END

Ответ 2

Существует выражение COALESCE (хотя функция https://msdn.microsoft.com/en-us/library/ms190349.aspx) проверяет аргументы и продолжает делать это, пока не найдет значение, NULL и возвращает его.

пример использования:
SELECT COALESCE(NULL, NULL, 5)--returns 5

В вашем случае:
COALESCE(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',

Ответ 3

Попробуйте следующее:

SELECT
  CASE
    WHEN a.PolicySignedDateTime IS NOT NULL THEN a.PolicySignedDateTime
    ELSE aq.Amount
FROM your joined table

Но.... ISNULL (a.PolicySignedDateTime, aq.Amount) проверяет, является ли ваше поле нулевым, поэтому не является нулевым, вы получаете его значение.

Поэтому я действительно не понимаю, потому что вы хотите использовать другой способ.