SQL Server - исключение записей из представления, если два определенных поля равны нулю - PullRequest
2 голосов
/ 25 марта 2011

Я пишу представление в SQL Server, и мне нужно отфильтровать результаты, чтобы, если два конкретных поля в записи имели нулевые значения, эта запись исключалась.

В качестве примера таблица Customer имеет поля Code, Name, Address, Payment, Payment_Date.

Если оба значения Payment & Payment_Date равны нулю, исключите запись из результирующего набора, однако, если только один равен нулю (или любому другому полю), то тогда можно вернуть запись.

Возможна ли эта функциональность в SQL Server? Любая помощь будет оценена.

Ответы [ 3 ]

4 голосов
/ 25 марта 2011
SELECT  *
FROM    mytable
WHERE   other_conditions
        …
        AND (payment IS NOT NULL OR payment_date IS NOT NULL)
1 голос
/ 25 марта 2011

Возьмите объединение двух полей и проверьте это значение для нуля

select * from yourtable where coalesce(field1, field2, field3, etc, etc,) is not null

это несколько проще для глаз, чем строка предложений OR (imho)

0 голосов
/ 25 марта 2011

Вы можете сделать это в предложении where, просто переверните его и используйте вместо этого OR:

WHERE
(
  PAYMENT IS NOT NULL
  OR
  PAYMENT_DATE IS NOT NULL
)
AND
  -- ...rest of where clause here...
...