永发信息网

SQL行变列

答案:4  悬赏:40  手机版
解决时间 2021-04-28 18:50

表A
ID AA AB AC AD AE
1 erty dfdfg wexc srfg xzd
2 m;lmsd ewdsmk dsnjke dsnlksd cnxjh
..........
2000 dsfdsf dgr dcf jjg er

ID 1 2 : 2000
AA erty m;lmsd : dsfdsf
AB dfdfg ewdsmk : dgr
AC wexc dsnjke : dcf
AD srfg dsnlksd : jjg
AE xzd cnxjh : er

怎么写SQL语句?

最佳答案
select 'AA',1 erty from A
union
select 'AB',dfdfg from A
union
select 'AC', wexc from A
union
select 'AD',srfg from A
union
select 'AE',xzd from A
如果要改的话再Q我
select '操作',DownCaozuo from T_Down_CodeRefine b
union
select '注意',DownZhuyi from T_Down_CodeRefine b
全部回答
很简单啊,行专列用case 列换行用union

你能把表结构整理下给出来吗?

--参照下这个 我就不写了 * 标题:普通行列转换(version 2.0) 作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 时间:2008-03-09 地点:广东深圳 说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ---- 李四 74 84 94 张三 74 83 93 ------------------- */ create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int) insert into tb values('张三' , '语文' , 74) insert into tb values('张三' , '数学' , 83) insert into tb values('张三' , '物理' , 93) insert into tb values('李四' , '语文' , 74) insert into tb values('李四' , '数学' , 84) insert into tb values('李四' , '物理' , 94) go --SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同) select 姓名 as 姓名 , max(case 课程 when '语文' then 分数 else 0 end) 语文, max(case 课程 when '数学' then 分数 else 0 end) 数学, max(case 课程 when '物理' then 分数 else 0 end) 物理 from tb group by 姓名 --SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同) declare @sql varchar(8000) set @sql = 'select 姓名 ' select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']' from (select distinct 课程 from tb) as a set @sql = @sql + ' from tb group by 姓名' exec(@sql) --SQL SERVER 2005 静态SQL。 select * from (select * from tb) a pivot (max(分数) for 课程 in (语文,数学,物理)) b --SQL SERVER 2005 动态SQL。 declare @sql varchar(8000) select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程 set @sql = '[' + @sql + ']' exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b') ---------------------------------

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我初中毕业了,想去看看我的初三班主任,我很
人会忘记出恋吗
金银花适合田地种植吗?
炫舞这几个发型哪个好看点?
IBM 6331 E54 显示器多大
哈尔滨职业技术学院留级制度
最好的朋友背叛了你你会原谅她么?
道具金币有什么用
PS高手消字
用电脑给名字打分
有无心磨床磨钛合金专用沙轮吗
怎么样开通支付宝
知识就是力量”出自哪个英国名人之口?
精美英语怎么说,“精美”一词用英文怎么说?
在淮阴哪里卖的诺基亚手机质量好?
推荐资讯
语法填空。阅读下列短文,按照句子结构的语法
想在拍拍开网店,在哪里找产品,进货呀?
口发苦发臭是什么原因,女人头发有臭味怎么办
贪吃的另一种说法叫什么?是两个类似繁体字的
DNF35的斩龙太刀值多少钱啊
哪里需要百叶车供应
磁铁到一定温度磁性会消失,多少温度磁性会消
网页打不开怎么回事?
关于对全国生鲜样板店项目组全体成员的通报表
无法编辑个性签名
求此视频中所有的歌
没人关爱自己的句子,毕竟没人懂过你的句子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?