谁能告诉我如何实现这一目标?在某些情况下,我的表中的列包含逗号分隔值.如果是,我需要为这些值创建新行.
此外,作为示例,表包含1行和4列Col1 | Col2 | Col3 | Col4具有以下值A | B | C | 分别为1,2,3.因此,Col4包含字符串'1,2,3',我需要拆分逗号分隔值并将它们放在自己的行上,这样表格就会包含1行,其中1 2和3位于他们自己的行上在Col4.
我想你可以这样做:
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) = '')
Run Code Online (Sandbox Code Playgroud)
代码在这个网站上被无耻地窃取了.