将一列拆分为多行

2024-01-03

谁能告诉我如何实现这个目标?在某些情况下,我的表中的列包含逗号分隔的值。如果是这样,我需要为这些值创建新行。

此外,作为一个例子,一个表包含 1 行 4 列第 2 栏 |第 3 栏 | Col4 具有以下值 A |乙| C |分别为1、2、3。因此,Col4 包含字符串 '1,2,3',我需要分解逗号分隔的值并将它们放在自己的行上,这样表将包含 1 行,其中 1 2 和 3 位于自己的行上在第 4 栏。


我认为你可以这样做:

SELECT
    T.id, RIGHT(LEFT(T.csv,Number-1),
    CHARINDEX(',',REVERSE(LEFT(','+T.csv,Number-1))))
FROM
    master..spt_values,
    your_table T
WHERE
    Type = 'P' AND Number BETWEEN 1 AND LEN(T.csv)+1
    AND
    (SUBSTRING(T.csv,Number,1) = ',' OR SUBSTRING(T.csv,Number,1)  = '') 

代码被无耻盗取这个网站 http://sql-server-performance.com/Community/forums/p/32141/166346.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将一列拆分为多行 的相关文章

随机推荐