【发布时间】:2009-09-04 08:56:32
【问题描述】:
我有一个表,其记录的结构与此类似..
ID RoleID
1 空
2 15
3 16
我写了一个 where 子句来获取如下记录
SELECT * from TableX
WHERE (RoleID = 2 OR RoleID IS NULL)
这让我得到了“1,NULL”的记录
但是如果我查询
SELECT * from TableX
WHERE (RoleID = 15 OR RoleID IS NULL)
我返回“1,NULL”和“2,15”。
有谁知道如何构造一个只给我一条记录的选择?如果通过了 15,我只想要“2,15”,如果没有匹配,我只想要“1,NULL”。
注意,实际的查询有更多的 where 子句,因此将自身嵌套在自身内部将是一个非常大的查询。
【问题讨论】:
标签: sql sql-server tsql