我有一個如下所示的表。我的問題是:如何將列轉換爲行?我使用Microsoft SQL Server將列轉換爲行的SQL查詢
sip_RECno user1 user2 user3 user4
1 ram ravi sam raj
我需要運像下面
user
ram
ravi
sam
raj
怎麼辦呢?感謝
我有一個如下所示的表。我的問題是:如何將列轉換爲行?我使用Microsoft SQL Server將列轉換爲行的SQL查詢
sip_RECno user1 user2 user3 user4
1 ram ravi sam raj
我需要運像下面
user
ram
ravi
sam
raj
怎麼辦呢?感謝
您的數據
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')
查詢
;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
結果集
╔═══════╗
║ Users ║
╠═══════╣
║ ram ║
║ ravi ║
║ sam ║
║ raj ║
╚═══════╝
如何爲動態列做些什麼? – Happy
@快樂這將是另一個長長的答案來解釋這裏看看這裏滾動到這個頁面的中間,看看動態樞軸/ unpivot數據如何http://www.codeproject.com/Tips/516896/Calculate-aggregates- for-dynamic-columns-using-UNP –
的[高效行轉換爲列在SQL Server 2008]可能重複(http://stackoverflow.com/questions/15745042/efficiently-convert-rows-to-columns-in -sql-server-2008) – Betlista
「將列轉換爲行」是「將行轉換爲列」的可能性很少。 –
真的嗎? PIVOT與UNPIVOT - http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx – Betlista