Declare @param char(1)
SET @param = 'A'
@param可以是'A','B'或'C'
SELECT x, y FROM myTbl
WHERE y = @param
如果@param ='A'或'B'则y = @param正常工作 如果@param ='C',那么我想要WHERE来获取y IS为空的行
我可以使用动态sql实现这一点,但无法在没有动态sql的情况下弄清楚如何做到这一点。有什么想法吗?
答案 0 :(得分:1)
使用基本布尔逻辑:
SELECT x, y
FROM myTbl
WHERE y = @param or (@param = 'C' and y is null);
如果你真的想要更明确:
SELECT x, y
FROM myTbl
WHERE (@param <> 'C' AND y = @param) OR
(@param = 'C' AND y IS NULL);