2013-06-27 1 views
1

아마도 extra_pack뿐만 아니라 entertainment_pack에 속하는 TV 채널 'bbc'가 있습니다. bbc가 Packages 열 아래의 두 패키지에 모두 들어간 case 문을 작성하려고합니다.사례 Qquery를 사용하여 필드 업데이트

처럼,

Select channel_name, 
     case when channel_name = 'bbc' then entertainment_pack 
      when channel_name = 'bbc' then extra_pack end as Packages 
From TableA 

그러나 문제는 영국 BBC가 아니라 모두 하나 개의 패키지로 업데이트된다. 최선의 방법을 제안하십시오.

+0

원하는 샘플 출력이 없으면 필드 정의와 사용중인 SQL의 맛이 여기에서 달성하려는 것을 알기 어렵습니다. –

+0

나는 당신이 질문을 단순화하려고 노력하고 있다고 생각합니다. 다른 채널을 위해 패키지로 무엇이 반환 될까요? 이 정보는 어떻게 저장됩니까? –

+0

CHANNEL_NAME 패키지 BBC 엔터테인먼트 BBC 추가 팩 ESPN 스포츠 ESPN HD 스포츠 추가 ESPN 스포츠 기본 등등 ... – SouravD

답변

0

당신은 당신이 더 많은 행을 원하기 때문에 입력보다 출력에 조인 또는 노동 조합이 작업을 수행해야합니다

Select a.channel_name, p.package_name 
From TableA a left outer join 
    (select 'bbc' as channel_name, 'entertainment_pack' as package union all 
     select 'bbc' as channel_name, 'extra_pack' as package 
    ) p 
    on a.channel_name = p.channel_name; 

이 아닌 BBC 채널에 대한 NULL를 반환합니다. p 하위 쿼리에 패키지를 추가 할 수 있습니다.

+0

가 고든을 주셔서 감사합니다. – SouravD

관련 문제