有这样一个表id colname value
-----------
1 A A1
1 B B1
1 C C1
2 A A2
2 B B2
2 C C2
3 A A3
3 B B3
3 C C3想把它变成如下的结构 A B C
------------
A1 B1 C1
A2 B2 C2
A3 B3 C3
如何能办到?
-----------
1 A A1
1 B B1
1 C C1
2 A A2
2 B B2
2 C C2
3 A A3
3 B B3
3 C C3想把它变成如下的结构 A B C
------------
A1 B1 C1
A2 B2 C2
A3 B3 C3
如何能办到?
解决方案 »
- SQL2005的数据库的附加和恢复报错
- 优化了索引以后,用存储过程提交一个插入操作时出错,求高人相救!
- 我的C盘已损坏,怎么才能恢复呢?
- SQL Server 2000中一个记录的最大字节数为多少?
- 如何查找最新入库信息
- 请问SQL Server 2000 一个数据库 中如何保存 中,日,韩三种语言
- 存储过程中的参数循环
- 我在英文版的winserver安装了简体中文的SQL server,在SQL中打不了中文字,都是乱码,请问有什么方法可以解决
- 感叹加讨论!
- 该学哪个版本的 SQL Server了?
- vb 和sql server 2000 开发C/S结构,如何在客户端连接服务器端数据库
- SQL多表关联更新
(
id int,
colname varchar(10),
value varchar(10)
)
insert test
select 1, 'A', 'A1' union all
select 1, 'B', 'B1' union all
select 1, 'C', 'C1' union all
select 2, 'A', 'A2' union all
select 2, 'B', 'B2' union all
select 2, 'C', 'C2' union all
select 3, 'A', 'A3' union all
select 3, 'B', 'B3' union all
select 3, 'C', 'C3'
select * from testselect max(A) as A,max(B) as B,max(c) as C from
(select id,(case colname when 'A' then value
end) A,
(case colname when 'B' then value
end) B,
(case colname when 'C' then value
end) C
from test)tt group by id
--动态
DECLARE @SQL varchar(1000)
SET @SQL=''
SELECT @SQL=@SQL +',' + 'MAX(case colname when '''+colname+''' then value1 end) AS '''+COLNAME+'''' from tt group by colname
SET @SQL=STUFF(@SQL,1,1,'')
SET @SQL='SELECT '+@SQL +' FROM TT GROUP BY ID'
EXEC(@SQL)
end) A,
max(case colname when 'B' then value
end) B,
max(case colname when 'C' then value
end) C
into new_table
from test group by id小虾米好像多套了一层查询呀.