用于检测相等或不相等条件的sql server case(互斥)

时间:2017-09-28 15:13:10

标签: sql-server case mutual-exclusion equals-operator

我需要做类似的事情:

select * from table1 where type case @param when 1 then EQUAL else NOT EQUAL end 3

为type = 3或类型<>选择全部3,取决于param。 考虑一个涉及很多表的大选择.... 这个想法不是在“UNION”的两边复制相同的选择

select * from table1 where type = 3 and @param =1
UNION
select * from table1 where type <> 3 and @param <> 1

有可能吗?

2 个答案:

答案 0 :(得分:0)

也许是这样的?

select * 
from table1 
where 
    ((@param=1) and (type=3))
or
    ((@param<>1) and (type<>3))

答案 1 :(得分:0)

CREATE ASYMMETRIC KEY

如果您需要没有任何重复的结果集,请使用SELECT * FROM table1 WHERE type = 3 AND @param = 1 OR type <> 3 AND @param <> 1