实施"不在"选择案例

时间:2016-06-28 06:45:06

标签: sql sql-server sql-server-2008 case notin

我选择了:

select col1,
   case
    when col2 = 'AB' then col3
    else cols2
   end as colX,
col4,sum(col5) from table 1
where....
group by col1,
case
when col2 = 'AB' then col3
else cols2
end, col4

如何添加以下内容: col2不在(' AA',' BB')?

我无法将col2添加到我的select中,因为我的整个select语句中有几个连接。

1 个答案:

答案 0 :(得分:1)

将新条件放在WHERE子句中。此外,如果您切换到使用派生表,则不必编写两次case表达式。 (更容易编码而不会出错,更易于阅读,更易于维护。)

select col1, colX, col4, sum(col5)
from
(
    select col1,
           case when col2 = 'AB' then col3
                else cols2
           end as colX,
           col4,
           col5
    from table1
    where...
      and col2 not in ('AA', 'BB')
) dt
group by col1, colX, col4