我选择了:
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语句中有几个连接。
答案 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