1

据说,有一个电视频道 'bbc' 属于 Entertainment_pack 和 extra_pack。我想写一个 case 语句,这样,bbc 就属于 Packages 列下的两个包。

像,

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

但问题是 bbc 正在更新到一个包,而不是两个包。请建议最好的前进方式。

4

1 回答 1

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;

这将NULL为非 BBC 频道返回。您可以将其他包添加到p子查询中。

于 2013-06-27T01:11:19.793 回答