sql怎么将数据表中的一列按照值拆分为多列 20

数据表展示:idnamevalue1A11A21A31B41B51B61C71C81C91D101D111D12希望只用SQL查询得到结果为:idnameAnameBna... 数据表展示:
id name value
1 A 1
1 A 2
1 A 3
1 B 4
1 B 5
1 B 6
1 C 7
1 C 8
1 C 9
1 D 10
1 D 11
1 D 12

希望只用SQL查询得到结果为:

id nameA nameB nameC nameD
1 1 4 7 10
1 2 5 8 11
1 3 6 9 12
主要是把下面的查询结果由12行合并成3行数据,去掉空值。。。
展开
 我来答
freeze涓垛湪
2019-10-21
知道答主
回答量:38
采纳率:0%
帮助的人:2.3万
展开全部

有点多,你可能不想看,自己整理一下,细一点  弄成视图也好


SELECT PEAppM0b02,COUNT([COUNT])[COUNT],CourseName,COUNT(A)A,COUNT(B)B,COUNT(C)C,COUNT(D)D FROM (

SELECT PEAppM0b02,COUNT([COUNT])[COUNT],CourseName,

CASE PEAppM0b162 

WHEN '一等奖' THEN PEAppM0b162 END A,

CASE PEAppM0b162

WHEN '二等奖' THEN PEAppM0b162 END B,

CASE PEAppM0b162

WHEN '三等奖' THEN PEAppM0b162 END C,

CASE ISNULL(PEAppM0b162,'')

WHEN '无奖项' THEN PEAppM0b162 END D

FROM 

(

SELECT * FROM 

(SELECT PEAppM0b02,COUNT(PEAppM0b162)[COUNT],CourseName,PEAppM0b162 

FROM PEAppM002Paper where PEAppM0b162='一等奖' GROUP BY PEAppM0b02,CourseName,PEAppM0b162) A

UNION

(SELECT PEAppM0b02,COUNT(PEAppM0b162)[COUNT],CourseName,PEAppM0b162 

FROM PEAppM002Paper where PEAppM0b162='二等奖' GROUP BY PEAppM0b02,CourseName,PEAppM0b162)

UNION

(SELECT PEAppM0b02,COUNT(PEAppM0b162)[COUNT],CourseName,PEAppM0b162 

FROM PEAppM002Paper where PEAppM0b162='三等奖' GROUP BY PEAppM0b02,CourseName,PEAppM0b162)

UNION

(SELECT PEAppM0b02,COUNT(PEAppM0b162)[COUNT],CourseName,PEAppM0b162 

FROM PEAppM002Paper where (PEAppM0b162='无奖项' OR ISNULL(PEAppM0b162,'')='无奖项') GROUP BY PEAppM0b02,CourseName,PEAppM0b162)

)TB

GROUP BY PEAppM0b02,CourseName,PEAppM0b162

)AS TAB

WHERE PEAppM0b02='164'

GROUP BY PEAppM0b02,CourseName

效果如下

原来的格式

变为这种格式

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知道合伙团队
2018-04-19 · 超过19用户采纳过TA的回答
知道答主
回答量:50
采纳率:80%
帮助的人:2.9万
展开全部
具体什么数据库? 如果state_code少的话可以用语句直接执行,多的话需要考虑存储过程,但是不同数据库语法不同,请给出具体数据库。
追问
sql server 2012
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式