将包含逗号和其他定界符的列拆分为不同的行以创建插入

问题描述

所以我有一个sql Server表,其中的行之一包含用逗号分隔的值,在某些情况下,它们的确也包含管道,请参见下面的示例:

Data with issues

我希望通过创建一个获取每个值,删除逗号并将其转换为单独行的脚本来规范第二列的数据。此外,脚本会将这些行插入到新表中。

到目前为止,我的脚本如下:

SELECT  ecotox_group,LEFT(ecotox_group,CHARINDEX(',',ecotox_group)) AS Comma_Location,RIGHT(ecotox_group,LEN(ecotox_group)-CHARINDEX(',ecotox_group)) AS Comma_After
FROM dbo.[species]
order by species_number desc

我将图像附加到结果的填充方式上(请忽略列别名),其中一个采用逗号“ Comma_Location”列之前的值,而另一个采用逗号“ Comma_After”之后的值。

Results after script

我的问题是,“ Comma_After”列仍包含用逗号分隔的其他值,因此仍将它们添加到一行中,这不是我想要的。另外,此列上没有逗号的值将填充为空格,并且脚本应该不考虑那些没有此问题的行。

关于如何在sql SERVER中执行此脚本的任何建议?

***请注意,我无法使用STRING SPLIT,我知道这是建议的方法,但这不适用于我的情况,因为我无法对数据库进行更新以使用此功能

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)