1列中的2个值显示在2个单独的列标题下

时间:2014-03-17 02:19:51

标签: sql

我们在599

中有值616subs_box_service_num

Select我们有

subs_box_service_num AS D_FCS
subs_box_service_num AS D_PZR

查询产生了2个具有这些不同标题的列 - 好

我们如何将值599和616显示在特定列下?

  • 我们希望在D_FCS
  • 下显示值599
  • 我们希望值616显示在D_PZR

1 个答案:

答案 0 :(得分:1)

这是一个透视查询的示例。您没有指定查询的其余部分返回的内容。让我假设它返回两行这些值,还有另一列澄清类型。查询将是:

select max(case when thetype = 'FCS' then subs_box_service_num end) as D_FCS,
       max(case when thetype = 'PZR' then subs_box_service_num end) as D_PZR

当然,您案例中的具体细节取决于查询正在执行的操作以及您使用的数据库。但是,这种使用条件聚合的方法应该有效。

编辑:

您的查询是:

Select Distinct system_code, subs_acct_num, subs_box_service_num AS D_FCS,   
       subs_box_service_num AS D_PZR
From ABC_reporting.dbo.subscriber_boxes_addr_serv
Where subs_box_service_num IN('599','616')

您似乎想要的是:

Select system_code, subs_acct_num,
       max(case when subs_box_service_num = 599 then subs_box_service_num end) AS D_FCS,   
       max(case when subs_box_service_num = 616 then subs_box_service_num end) AS D_PZR 
From ABC_reporting.dbo.subscriber_boxes_addr_serv
Where subs_box_service_num IN('599','616')
Group by system_code subs_acct_num;

这似乎是一个奇怪的查询。通常,您需要与每种类型相关联的值。