首页 >数据库 >mysql教程 >如何将逗号分隔值转换为 SQL Server 中的行?

如何将逗号分隔值转换为 SQL Server 中的行?

Linda Hamilton
Linda Hamilton原创
2025-01-03 08:28:39293浏览

How to Convert Comma-Separated Values to Rows in SQL Server?

将逗号分隔值转换为行结构数据

在 SQL Server 中,当数据以逗号分隔格式存储在列中时,提取和操纵个人价值观可能具有挑战性。本文演示如何使用选择查询将此类数据转换为行结构格式。

考虑一个名为 Sample 的表,其中包含一个名为 String 的列,其中包含逗号-分隔值,例如:

Id String
1 abc,def,ghi
2 jkl,mno,pqr

要提取各个值并将其呈现为行,我们可以使用以下方法步骤:

  1. String 列包裹在 XML 标签内:

    CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)

    这将创建一个 XML 片段,其中每个值都封装在 < 中;M>

  2. 使用 CROSS APPLY 运算符执行分层查询:

    CROSS APPLY String.nodes ('/M') AS Split(a)

    这会在 XML 片段上交叉应用节点方法,从而产生一个新的每个的行标签,其中包含各个值。

  3. Id 列与 Split(a).value('text()') 表达式:

    SELECT A.[id], Split.a.value('.','VARCHAR(100)') AS String
    FROM (SELECT [id], CAST('...AS XML) AS String FROM Sample) AS A
    这会将 Id 与提取的值相匹配,并将它们作为单独的值返回rows。

结果将类似于所需的输出:

Id ProcessedRows
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
此技术可以将逗号分隔的值提取和呈现为行,从而实现高效分析和数据处理。

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

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