如何在sql 将查找出来的数据变成横向显示

 我来答
time陌言成殇
推荐于2017-09-05 · TA获得超过8.4万个赞
知道大有可为答主
回答量:1.4万
采纳率:91%
帮助的人:9376万
展开全部

您好,很高兴为您解答。


看几个实例。

select
  max(case name when '课桌式' then [count] else 0 end) as 课桌式,
  max(case name when '分组式' then [count] else 0 end) as 分组式,
....
from
   tb


create table test([name] varchar(10),[count] int)
go
insert test
select '课桌式', 100 union all
select '分组式', 360 union all
select '剧院式', 200 union all
select '董事会', 150 union all
select 'U型', 100 union all
select '宴会型', 150
 
select * from test
 
declare @sql varchar(max)
 
select @sql=isnull(@sql+',','')+' max(case when [name]='''+[name]+''' then [count] end) as '''+[name]+''''
from
(select [name] from test group by [name]) t
 
print @sql
exec('select '+@sql+' from test' )
 
drop table test
 
/*
(6 row(s) affected)
name       count
---------- -----------
课桌式        100
分组式        360
剧院式        200
董事会        150
U型         100
宴会型        150
 
(6 row(s) affected)
 
U型          董事会         分组式         剧院式         课桌式         宴会型
----------- ----------- ----------- ----------- ----------- -----------
100         150         360         200         100         150
 
(1 row(s) affected)
*/


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】


希望我的回答对您有所帮助,望采纳!


                                                                                                                             ~ O(∩_∩)O~

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式