Hap*_*ppy 1 sql t-sql sql-server
我有一个表如下所示.我的问题是:如何将列转换为行?我正在使用Microsoft SQL Server
sip_RECno user1 user2 user3 user4
1 ram ravi sam raj
Run Code Online (Sandbox Code Playgroud)
我需要像下面这样的操作
user
ram
ravi
sam
raj
Run Code Online (Sandbox Code Playgroud)
怎么做?谢谢
你的数据
DECLARE @TABLE TABLE
(sip_RECno INT,user1 VARCHAR(10),user2 VARCHAR(10)
,user3 VARCHAR(10),user4 VARCHAR(10))
INSERT INTO @TABLE VALUES
(1,'ram','ravi','sam','raj')
Run Code Online (Sandbox Code Playgroud)
询问
;WITH CTE
AS
(
SELECT * FROM (
SELECT user1 ,user2 ,user3 , user4 FROM @TABLE) T
UNPIVOT ( Value FOR N IN (user1 ,user2 ,user3 , user4))P
)
SELECT Value AS Users
FROM CTE
Run Code Online (Sandbox Code Playgroud)
结果集
?????????
? Users ?
?????????
? ram ?
? ravi ?
? sam ?
? raj ?
?????????
Run Code Online (Sandbox Code Playgroud)
你可以简单 UNPIVOT()
select [user] from table_name unpivot
(
[user]
for [userid] in ([user1], [user2], [user3], [user4])
)unpvt
Run Code Online (Sandbox Code Playgroud)