题目1:将表tbltest1的行列互换
表结构:
student kemu fenshu
student1 语文 80
student1 数学 90
student1 英语 85
student2 语文 85
student2 数学 92
student2 英语 82
student1 语文 80
student1 数学 90
student1 英语 85
student2 语文 85
student2 数学 92
student2 英语 82
变成:
student 语文 数学 英语
student1 80 90 85
student2 85 92 82
student 语文 数学 英语
student1 80 90 85
student2 85 92 82
或者
select student,sum(
case kemu
when
'语文'
then fenshu
else 0
end) 语文,sum(
case kemu
when
'数学'
then fenshu
else 0
end) 数学,sum(
case kemu
when
'英语'
then fenshu
else 0
end) 英语
from tbltest
group
by student
2005的话好像还有个函数可以用,等研究好了再发上来。
题目2:合并
表结构tbltest2:
id strings
1 my
1 name
1 is
1 my
1 name
1 is
1 xudayu
2 hello
2 world
2 hello
2 world
转化成:
id strings
1 my name is xudayu
2 hello world
id strings
1 my name is xudayu
2 hello world
--创建一个合并的函数
create function fliehebin(@id int)
returns varchar(5000)
as
begin
declare @ str varchar(5000)
set @ str= ''
select @ str=@ str + cast(strings as varchar(50)) + ' ' from tbltest2 where id=@id
set @ str= subString(@ str,1,len(@ str))
return(@ str)
end
go
--调用自定义函数得到结果
select distinct id,dbo.fliehebin(id) from tbltest2
create function fliehebin(@id int)
returns varchar(5000)
as
begin
declare @ str varchar(5000)
set @ str= ''
select @ str=@ str + cast(strings as varchar(50)) + ' ' from tbltest2 where id=@id
set @ str= subString(@ str,1,len(@ str))
return(@ str)
end
go
--调用自定义函数得到结果
select distinct id,dbo.fliehebin(id) from tbltest2
=====================================================================
传说通用的, 如下:
=====================================================================
Oracle's:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。