在一个结果中选择iif sql多个条件

时间:2016-09-21 14:05:57

标签: sql sql-server if-statement sql-server-2012 resultset

我们有多个变量:SQL Server 2012中的Variable1,Variable2和Variable3

如果其中一个变量失败,我们就会失败状态

Declare @Variable1 int
Set @Variable1 = ( select  top 1 count(*)
FROM Table1
where condition1=1 
group by column1,column2
having count(1) >1)

Declare @Variable2 int
Set @Variable2 = ( select  top 1 count(*)
FROM Table1
where condition2=1 
group by column3,column4
having count(1) >1)

Declare @Variable3 int
Set @Variable3 = ( select  top 1 count(*)
FROM Table1
where condition3=1 
group by column5,column6
having count(1) >1)

SELECT IIF ( @Variable1 >=1 and Variable2 >=1 and Variable3 >=1, 'Fail', 'Pass' ) AS ResultTable1;

ResultTable1总是在@ Variable1上获得结果,而不是基于@ Variable2和@ Variable3结果

任何人都可以帮忙吗? -Thanks

1 个答案:

答案 0 :(得分:0)

  

如果其中一个变量失败,我们就会失败状态

在这种情况下,您需要在OR中使用IIF(),而不是AND。你现在的方式,所有的变量都必须失败状态。

SELECT IIF ( @Variable1 >=1 OR @Variable2 >=1 OR @Variable3 >=1, 'Fail', 'Pass' ) AS ResultTable1