据说,有一个电视频道'bbc'属于entertainment_pack和extra_pack。 我想编写一个case语句,使得bbc落在包列下的两个包中。
像,
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 :(得分: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
子查询中。