我想將一個記錄列拆分成多行。將SQL列轉換爲行
如果我有這樣一個SQL語句如下:
SELECT 1,2,3
結果:
1 | 2 | 3
如何轉換,爲下面的結果呢?
1
2
3
我目前使用MS SQL 2008
我想將一個記錄列拆分成多行。將SQL列轉換爲行
如果我有這樣一個SQL語句如下:
SELECT 1,2,3
結果:
1 | 2 | 3
如何轉換,爲下面的結果呢?
1
2
3
我目前使用MS SQL 2008
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
有沒有辦法做到這一點,而不修改原來的SELECT語句?即SELECT converttorow(SELECT 1,2,3) – ChrisCrous
@ChrisCrous:你可以創建你的函數或存儲過程,只需傳遞這些逗號分隔值,然後你可以把你的t-sql邏輯生成這樣的輸出。 –
Check [Convert逗號分隔爲行](http://www.sqlservercentral.com/Forums/Topic1043869-149-1.aspx#bm1043876)和oracle [轉換行中逗號分隔的字符串](https://forums.oracle.com /forums/thread.jspa?threadID=2320358).. [this](http://www.sqlservercentral.com/Forums/Topic968028-338-1.aspx#bm968044)和[this](http:// stackoverflow。 com/questions/887628/convert-multiple-rows-into-one-with-comma-as-separator).. [This](http://stackoverflow.com/questions/5493510/turning-a-comma-separated-字符串到個體,行) –
要總結以上的評論:
如果要列轉換爲行,你將需要使用 T-SQL UNPIVOT子句。
如果要拆分包含逗號分隔值 一列,你需要創建一個函數(example here)
這真的是你想要做什麼?如果不是,你應該發佈更真實的東西。 – APC
您可能想看看[UNPIVOT](http://msdn.microsoft.com/en-us/library/ms141723.aspx)。 –