在 SQL Server 2005 中从另一个 table 创建一个 table
Create a table from another table in SQL Server 2005
我有一个 table 这样的:
我想创建另一个 table,从上面获取数据 table,结果如下:
我该怎么做?感谢您的帮助。
考虑到您有标识或任何其他列来标识订单
示例数据
create table test_tab
(id int identity(1,1), sophong int)
insert into test_tab values (7)
insert into test_tab values (4)
insert into test_tab values (11)
insert into test_tab values (7)
insert into test_tab values (4)
insert into test_tab values (11)
insert into test_tab values (6)
insert into test_tab values (3)
insert into test_tab values (11)
查询:
;WITH cte as
(
SELECT *,((ROW_NUMBER() over(order by id)-1)/3)+1 as iden,
((ROW_NUMBER() over(order by id)-1)%3)+1 as ident
FROM test_tab
)
SELECT max(case when iden = 1 then sophong end) as [1],
max(case when iden =2 then sophong end) as [2],
max(case when iden = 3 then sophong end) as [3]
FROM cte
group by ident
结果:
1 |2 |3
----+---+---
7 |7 |6
4 |4 |3
11 |11 |11
我有一个 table 这样的:
我想创建另一个 table,从上面获取数据 table,结果如下:
我该怎么做?感谢您的帮助。
考虑到您有标识或任何其他列来标识订单
示例数据
create table test_tab
(id int identity(1,1), sophong int)
insert into test_tab values (7)
insert into test_tab values (4)
insert into test_tab values (11)
insert into test_tab values (7)
insert into test_tab values (4)
insert into test_tab values (11)
insert into test_tab values (6)
insert into test_tab values (3)
insert into test_tab values (11)
查询:
;WITH cte as
(
SELECT *,((ROW_NUMBER() over(order by id)-1)/3)+1 as iden,
((ROW_NUMBER() over(order by id)-1)%3)+1 as ident
FROM test_tab
)
SELECT max(case when iden = 1 then sophong end) as [1],
max(case when iden =2 then sophong end) as [2],
max(case when iden = 3 then sophong end) as [3]
FROM cte
group by ident
结果:
1 |2 |3
----+---+---
7 |7 |6
4 |4 |3
11 |11 |11