IIF中的字段为空()

时间:2016-06-22 03:19:18

标签: sql sql-server null

我有两种类型,TypeATypeB

TypeA有两个系列 - Series1Series2

TypeB有一个系列 - Series1

以下是我设法提出的查询:

SELECT
   *
FROM
    TypesTable
WHERE
    Series1 = 'A3bBa#$#0sB2'
AND
    Series2 = IIF(Type != 'TypeB', 'vH2f##gYtL&', NULL);

我遇到Series2 = IIF(...)部分

的问题

如何判断我的查询

如果Type = TypeASeries2等于用户提供的Series2

如果Type = TypeBSeries2为NULL

我很难使用IIF,因为如果Type == 'TypeB' Series2应为Series2 IS NULL而不是Series2 = NULL

1 个答案:

答案 0 :(得分:1)

在WHERE子句中扩展条件检查。

SELECT
   *
FROM
    TypesTable
WHERE
    Series1 = 'A3bBa#$#0sB2'
AND
    ((Type = 'TypeA' AND Series2 = 'vH2f##gYtL&') OR (Type = 'TypeB' AND Series2 IS NULL))