我想将一个记录列拆分成多行。将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)。 –