SQL query to convert columns into rows

亡梦爱人 提交于 2019-12-19 05:07:08

问题


I have a table as shown below.My question is:How can I convert columns into rows? I'm using Microsoft SQL Server

   sip_RECno  user1     user2    user3     user4       

   1          ram       ravi     sam       raj

i need op like below

 user
 ram
 ravi
 sam
 raj

how to do it? thanks


回答1:


Your Data

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')

Query

;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

Result Set

╔═══════╗
║ Users ║
╠═══════╣
║ ram   ║
║ ravi  ║
║ sam   ║
║ raj   ║
╚═══════╝



回答2:


You can simply UNPIVOT()

select [user] from table_name unpivot 
      (
       [user]
       for [userid] in ([user1], [user2], [user3], [user4]) 
      )unpvt

Demo



来源:https://stackoverflow.com/questions/21287855/sql-query-to-convert-columns-into-rows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!