2016-06-28 5 views
0

으로 선택하는 "하지에서"구현 :내가 선택해야하는 경우

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')에?

select select에 col2를 추가 할 수 없기 때문에 전체 select 문에 몇 개의 조인이 있습니다.

+1

잘못 어떤 '곳 하지 ('AA ','BB ')'의 COL2? –

+0

전체 SQL 쿼리 – StackUser

+0

을 게시 할 때 열이 없음 ... 오류가 발생했습니다 : 잘못된 열 이름 – 4est

답변

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 
+0

감사합니다. jarlh! – 4est

+0

@ 4est, 오신 것을 환영합니다! – jarlh