比如 1234 行 转成一列 5678 转成一列 ,9 10 11 12 转成一列
01010470
7906
5
1
01010472
7905
5
1
01010474
7905
5
1
------解决方案--------------------
是想要这个想过么
IF OBJECT_ID('tempdb..#test','U') IS NOT NULL DROP TABLE #test
CREATE TABLE #test
(
A CHAR(10)
)
INSERT INTO #test
( A)
VALUES ( 'A'),( 'B'),( 'C'), ( 'D'), ( 'E'), ( 'F'),( 'G'), ( 'H'), ( 'I'), ( 'J')
SELECT * FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) ID1,*
FROM (
SELECT ((ROW_NUMBER() OVER(ORDER BY GETDATE())-1)/4)+1 ID,*
FROM #test AS A) A)B
PIVOT(MAX(A) FOR ID IN([1],[2],[3])) p
/*
ID1 1 2 3
1 A E I
2 B F J
3 C G NULL
4 D H NULL
*/
------解决方案--------------------
IF OBJECT_ID('tempdb..#test','U') IS NOT NULL DROP TABLE #test
CREATE TABLE #test
(
A CHAR(10)
)
INSERT INTO #test
( A)
VALUES ( 'A'),( 'B'),( 'C'), ( 'D'), ( 'E'), ( 'F'),( 'G'), ( 'H'), ( 'I'), ( 'J'),('K'),('L')
SELECT * FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) ID1,*
FROM (
SELECT ((ROW_NUMBER() OVER(ORDER BY GETDATE())-1)/4)+1 ID,*
FROM #test AS A) A)B
PIVOT(MAX(A) FOR ID1 IN([1],[2],[3],[4])) p
/*
ID 1 2 3 4
1 A B C D
2 E F G H
3 I J K L
*/
------解决方案--------------------
--drop table tb
create table tb( name int)
insert into tb
select'01010470'union all
select'7906'union all
select'5'union all
select'1'union all
select'01010472'union all
select'7905'union all
select'5'union all
select'1'union all
select'01010474'union all
select'7905'union all
select'5'union all
select'1'
with cte as
(
select * ,(row_number () over ( partition by rn order by rn )) number
from
(select * ,((row_number () over ( order by getdate())-1)/4)+1 rn from tb ) t