我有一个表,我想要转动这个表,我想要的输出是@tab2。
我的桌子如下:
declare @tab1 table(name varchar(50),mobile varchar(10),address varchar(100))
insert into @tab1 values('Test','2612354598','CG-10')
select * from @tab1我想要的输出是:
declare @tab2 table(colname varchar(50),value varchar(100))
insert into @tab2 values('name','Test'),('mobile','2612354598'),('address','CG-10')
select * from @tab2请帮帮忙
发布于 2022-11-17 06:35:58
如果使用server,则可以使用UNPIVOT。
SELECT colname, valueid
FROM
(SELECT CAST(name as varchar(100)) name, CAST(mobile as varchar(100))
mobile, address FROM @tab1) p
UNPIVOT
(valueid FOR colname IN
(name,mobile, address)
)AS unpvt;您需要对列进行CAST(),以便所有列的类型都相同。
发布于 2022-11-17 06:28:17
你看到的是Unpivot而不是Pivot。使用Unpivot如下所示。确保所有列都具有相同的数据类型。
select
colname,
value
from @tab1
unpivot
(
value
for colname in ([name]
,[mobile]
,[address]
)
) unpiv;https://stackoverflow.com/questions/74470800
复制相似问题