2013-12-12 4 views
0

두 테이블을 결합하는 SQL 문이 있지만 최근에 사례 조건을 추가하라는 메시지가 표시되었습니다. 조건은 작동하지만 문제는 각 조건이 중복 된 열을 생성한다는 것입니다.SQL 여러 열을 하나의 열로 병합

case when s.Department = 'Aero' then '(OA)' else '' end as Blah, 
case when s.Department = 'Terrent' then '(OT)' else '' end as Blah, 
case when s.Department = 'Vertigo' then '(OMG)' else '' end as Blah 

This causes me to end up with 

a| b | c | d | Blah | Blah | Blah| 
| | | | (OT) | (OA) | (OT)| 
| | | | (OT) |  |  | 
| | | | (OT) | (OA) |  | 
| | | | (OT) | (OA) | (OT)| 
| | | |  |  | (OT)| 

"사례"cmd를 사용하고 해당되는 경우 모든 결과를 1 열 아래에 표시하려면 어떻게해야합니까?

a| b | c | d | Blah | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OA) | 
| | | | (OA) | 
| | | | (OA) | 
| | | | (OT) | 
| | | | (OT) | 
| | | | (OT) | 
+0

내가 혼란 스러워요. 부서가 원하는 결과의 첫 행에 암시 된대로 '에어로', '테렌트'및 '버티고'값을 어떻게 취할 수 있습니까? –

답변

1

세 가지 중 하나가 아닌 경우 문을 사용합니다 :

(case when s.Department = 'Aero' then '(OA)' 
     when s.Department = 'Terrent' then '(OT)' 
     when s.Department = 'Vertigo' then '(OMG)' 
     else '' 
    end) as Blah 
+0

Gordon Linoff, 감사합니다. – stackrack

+0

마지막 질문. 이제 어떻게 완성 된 제품을 가져올 수 있습니까? (내 명세서에 여러 개의 조인이 있습니다) 영구 테이블에 삽입합니까? – stackrack

+0

@stackrack. . . 당신은'select를 사용할 수 있습니다. . . 에. . ('앞에'를 넣으십시오). 또는 결과를 반환하지만 실제로 테이블을 구체화하지 않는 뷰를 설정할 수도 있습니다. –

관련 문제