原结构: 字段1 字段2
A 0.1
B 0.2
C 0.3
A 0.4
B 0.5
C 0.6
目标结构:
A B C
0.1 0.2 0.3
0.4 0.5 0.6 如何实现呢
A 0.1
B 0.2
C 0.3
A 0.4
B 0.5
C 0.6
目标结构:
A B C
0.1 0.2 0.3
0.4 0.5 0.6 如何实现呢
解决方案 »
- <afxdb.h>头文件的作用
- 一个简单的赋值,不知道在哪里出错了,得到的答案是一个×。
- 关于字段合并的问题,解决后散分 在线等 谢谢!
- 高手老帮帮忙,很急的,
- 这个查询语句怎么写?
- sql server 2005 镜像,主机坏了,如何启用备机
- ****** 多表结合查询 返回 结果集 新解 提升执行效率**********
- 如何将access的数据导入到excell?并且能设置格式?
- 请问如何将ACCESS200数据库中指定的表字段记录导入进SQL2000对应的字段(能直接用企业管理器做吗?)
- 有关存储过程的问题,高手请进。高分!!!
- sql server2008(64位)导Access数据到SQL Server中的问题
- 问一个关于记录想减的问题
INSERT @TB
SELECT 'A', 0.1 UNION ALL
SELECT 'B', 0.2 UNION ALL
SELECT 'C', 0.3 UNION ALL
SELECT 'A', 0.4 UNION ALL
SELECT 'B', 0.5 UNION ALL
SELECT 'C', 0.6;WITH C AS
(
SELECT *,ROW_NUMBER() OVER (ORDER BY GETDATE()) RN
FROM @TB
)
SELECT MAX(CASE WHEN (RN-1)%3 =0 THEN F2 END) AS A,
MAX(CASE WHEN (RN-1)%3 =1 THEN F2 END) AS B,
MAX(CASE WHEN (RN-1)%3 =2 THEN F2 END) AS C
FROM C
GROUP BY (RN-1)/3
/*
A B C
---------------------- ---------------------- ----------------------
0.1 0.2 0.3
0.4 0.5 0.6
*/
declare @sql varchar(max)select *,px = row_number() over (partition by [字段1] order by getdate())
into #tb
from tb--剩下的对#tb行转列,看下精华帖,很多例子!
create table t1
(
vol1 varchar(5),
vol2 float
)
insert into t1
select 'A', 0.1 union all
select 'B', 0.2 union all
select 'C', 0.3 union all
select 'A', 0.4 union all
select 'B', 0.5 union all
select 'C', 0.6;with abc as
(select row_number() over(partition by vol1 order by vol2) as row,* from t1)
--select * from abc
select max(case when vol1='A' then vol2 else null end) as 'A',
max(case when vol1='B' then vol2 else null end) as 'B',
max(case when vol1='C' then vol2 else null end) as 'C'
from abc group by row
(
vol1 varchar(5),
vol2 decimal(18,1)
)
insert into t1
select 'A', 0.1 union all
select 'B', 0.2 union all
select 'C', 0.3 union all
select 'A', 0.4 union all
select 'B', 0.5 union all
select 'C', 0.6select
max(case vol1 when 'A' then vol2 else null end) A,
max(case vol1 when 'B' then vol2 else null end) B,
max(case vol1 when 'C' then vol2 else null end) C
from
(
select t.* , px = (select count(1) from t1 where vol1 = t.vol1 and vol2 < t.vol2) + 1 from t1 t
) m
group by pxdrop table t1/*
A B C
-------------------- -------------------- --------------------
.1 .2 .3
.4 .5 .6(所影响的行数为 2 行)
*/