我现要将表中的行列转换,如表一
姓名 科目 成绩
王二 数学 85
王二 语文 90
王二 英语 94
张三 数学 98
张三 语文 92
张三 英语 96输出为:
姓名 科目1 成绩1 科目2 成绩2 科目3 成绩3
王二 数学 85 语文 90 英语 94
张三 数学 98 语文 92 英语 96
姓名 科目 成绩
王二 数学 85
王二 语文 90
王二 英语 94
张三 数学 98
张三 语文 92
张三 英语 96输出为:
姓名 科目1 成绩1 科目2 成绩2 科目3 成绩3
王二 数学 85 语文 90 英语 94
张三 数学 98 语文 92 英语 96
http://expert.csdn.net/Expert/TopicView1.asp?id=1015421
(select 姓名,科目,成绩 from 表一 where 科目=数学) a
left join
(select 姓名,科目,成绩 from 表一 where 科目=语文) b
on a.姓名=b.姓名
left join
(select 姓名,科目,成绩 from 表一 where 科目=英语) c
on a.姓名=c.姓名
可能这严格上不能说是一个行列转换,我的目的是想对相同姓名的不同科目、成绩写到一行纪录里去。