首页 >数据库 >mysql教程 >如何在 SQL Server 中将逗号分隔值拆分为多行?

如何在 SQL Server 中将逗号分隔值拆分为多行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-06 00:19:401046浏览

How to Split Comma-Separated Values into Multiple Rows in SQL Server?

将逗号分隔的值拆分为表行

以逗号分隔的多个值存储的数据在以结构化格式检索时可能会带来挑战。本文旨在通过提供一种解决方案来解决此问题,将 SQL Server 列中的逗号分隔值转换为单独的行。

在提供的示例中,示例表包含一个名为 String 的列,其中包含诸如“abc”之类的数据,def,ghi”和“jkl,mno,pqr”。目标是将此数据转换为包含多行的表,其中每行包含 String 列中的单个值。

以下 SQL Server 查询可以实现此转换:

SELECT A.[id], Split.a.value('.', 'VARCHAR(100)') AS processedrows
FROM (SELECT [id], CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String FROM Sample) AS A CROSS APPLY String.nodes ('/M') AS Split(a);

此查询采用一些高级技术将逗号分隔的值转换为 XML,然后将每个值提取为单独的行。有关此方法的更多详细信息,请参阅 http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html。

以上是如何在 SQL Server 中将逗号分隔值拆分为多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn