Sql 将列值拆分为行并保留第二列的值
我的一张桌子有问题,我打算在viz工具中使用它。也许你可以指导我如何实现以下目标 我的桌子看起来像这样:Sql 将列值拆分为行并保留第二列的值,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的一张桌子有问题,我打算在viz工具中使用它。也许你可以指导我如何实现以下目标 我的桌子看起来像这样: 123 | ABC DEF 456 | GHI JKL MNO 789 | PRS 我想将第二列拆分为行,并保留第一列的值: 123 | ABC 123 | DEF 456 | GHI 456 | JKL 456 | MNO 789 | PRS 你能告诉我如何做到这一点吗? 提前谢谢。干杯 您可以使用XML节点方法分割数据: SELECT ID, split.a.value('.',
123 | ABC DEF
456 | GHI JKL MNO
789 | PRS
我想将第二列拆分为行,并保留第一列的值:
123 | ABC
123 | DEF
456 | GHI
456 | JKL
456 | MNO
789 | PRS
你能告诉我如何做到这一点吗?
提前谢谢。干杯 您可以使用
XML
节点方法分割数据:
SELECT ID, split.a.value('.', 'VARCHAR(MAX)') DATA
FROM
(
SELECT ID, CAST('<A>'+REPLACE(DATA, ' ','</A><A>')+'</A>' AS XML) AS data from <table_name>
) a
CROSS APPLY data.nodes('/A') AS split(a);
您可以使用
XML
节点方法拆分数据:
SELECT ID, split.a.value('.', 'VARCHAR(MAX)') DATA
FROM
(
SELECT ID, CAST('<A>'+REPLACE(DATA, ' ','</A><A>')+'</A>' AS XML) AS data from <table_name>
) a
CROSS APPLY data.nodes('/A') AS split(a);
谷歌:“SQL Server拆分字符串”什么版本的SQL Server?最新版本(和Azure SQL DB)中有一些内置函数可以处理这个问题。嗨,Vinnie,刚刚添加了额外的标记。现在是2008年。可能会重复从未存储过的数据。这只会给你带来很多麻烦。谷歌:“SQLServer拆分字符串”什么版本的SQLServer?最新版本(和Azure SQL DB)中有一些内置函数可以处理这个问题。嗨,Vinnie,刚刚添加了额外的标记。现在是2008年。可能会重复从未存储过的数据。这只会给你带来很多麻烦,效果很好。谢谢,很好用。非常感谢。