我有两种类型,TypeA
和TypeB
。
TypeA
有两个系列 - Series1
和Series2
TypeB
有一个系列 - Series1
以下是我设法提出的查询:
SELECT
*
FROM
TypesTable
WHERE
Series1 = 'A3bBa#$#0sB2'
AND
Series2 = IIF(Type != 'TypeB', 'vH2f##gYtL&', NULL);
我遇到Series2 = IIF(...)
部分
如何判断我的查询
如果Type = TypeA
,Series2
等于用户提供的Series2
值
如果Type = TypeB
,Series2
为NULL
我很难使用IIF
,因为如果Type == 'TypeB'
Series2
应为Series2 IS NULL
而不是Series2 = NULL
答案 0 :(得分:1)
在WHERE子句中扩展条件检查。
SELECT
*
FROM
TypesTable
WHERE
Series1 = 'A3bBa#$#0sB2'
AND
((Type = 'TypeA' AND Series2 = 'vH2f##gYtL&') OR (Type = 'TypeB' AND Series2 IS NULL))