询问是否有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