我想将下面的两个select语句和if else语句合并到一个带有where子句中的条件表达式的select语句中。怎么可能实现?
@DefaultMemberID = 2
IF @DefaultMemberID IS NOT NULL THEN
SELECT * FROM MemberProfile
WHERE MemberID = @DefaultMemberID OR MemberID = NULL
ELSE
SELECT * FROM MemberProfile
如何将其组合成一个选择语句,如下所示:
SELECT * FROM MemberProfile
WHERE
WHEN @DefaultMemberID IS NOT NULL THEN
MemberID = @DefaultMemberID OR MemberID IS NULL
ELSE do not take memberID into account when querying
答案 0 :(得分:2)
这是组合查询的方法。
SELECT * FROM MemberProfile
WHERE MemberID = @DefaultMemberID OR MemberID IS NULL OR @DefaultMemberID IS NULL
OPTION(RECOMPILE)
注意:您无法将NULL
与=
运算符进行比较。您需要使用IS
来检查是否存在NULL
答案 1 :(得分:1)
我知道你会很难相信这一点,但那只是
WHERE @DefaultMemberID is null
or MemberID = @DefaultMemberID
OR MemberID is NULL