读书人

询问是否有SQL语句或存储过程能实现小

发布时间: 2012-01-28 22:06:13 作者: rapoo

询问是否有SQL语句或存储过程能实现我的想法
内容如下:

编号 数据编号 名称 内容
1 001 姓名 张三
2 001 性别 男
3 001 年龄 17

就是,根据数据编号,得知这三条数据属于同一个数据,是否可以用SQL语句,查询出来,并且组成一条查询结果返回,即返回

编号 姓名 性别 年龄
1 张三 男 17

是否可以查询出前3年数据并组成上面1条数据返回给dataset数据集???谢谢,盼复

[解决办法]
--如果名是固定的
Select
数据编号,
Max(Case 名称 When '姓名 ' Then 内容 Else ' ' End) As 姓名,
Max(Case 名称 When '性别 ' Then 内容 Else ' ' End) As 性别,
Max(Case 名称 When '年龄 ' Then 内容 Else ' ' End) As 年龄
From

Group By
数据编号
[解决办法]
create table tab(编号 int,数据编号 varchar(10),名称 varchar(10),内容 varchar(10))
insert tab
select 1 , '001 ' , '姓名 ', '张三 '
union select 2 , '001 ' , '性别 ', '男 '
union select 3 , '001 ' , '年龄 ', '17 '


declare @str varchar(8000)
set @str= 'select 编号=cast(数据编号 as int) '
select @str=@str+ ', '+名称+ '=max(case when 内容= ' ' '+内容+ ' ' ' then 内容 else ' ' ' ' end) '
from tab
group by 数据编号,名称,内容

exec(@str+ ' From tab Group By 数据编号 ')

drop table tab

读书人网 >SQL Server

热点推荐