【问题标题】:Get Values between Each Comma in Seperate Row in SQL Server获取 SQL Server 中单独行中每个逗号之间的值
【发布时间】:2020-04-24 16:36:46
【问题描述】:

我需要从单个字符串在数据库表中插入多行。

这是我的字符串,它将是逗号分隔的值

当前字符串:

batch 1 45665 987655,1228857 76554738,12390 8885858,301297 38998798

我想要的是第 1 批应该被忽略或删除,其余部分应该作为单独的行添加到 SQL Server 数据库中,用于每个逗号之后

表名dbo.MSISDNData

Data
------------------
45665 987655
1228857 76554738
12390 8885858
301297 38998798

当我查询表格时,它应该返回这样的结果

查询:

Select data 
from dbo.MSISDNData

结果

Data
---------------------
45665 987655
1228857 76554738
12390 8885858
301297 38998798

【问题讨论】:

标签: sql sql-server string tsql sql-server-2014


【解决方案1】:

试试这个:

DECLARE @Data NVARCHAR(MAX) = N'batch 1 45665 987655,1228857 76554738,12390 8885858,301297 38998798'
DECLARE @DataXML XML;

SET @Data = '<a>' + REPLACE(REPLACE(@Data, 'batch 1 ', ''), ',', '</a><a>') + '</a>';
SET @DataXML = @Data;

SELECT LTRIM(RTRIM(T.c.value('.', 'VARCHAR(MAX)'))) AS [Data]
FROM @DataXML.nodes('./a') T(c);

它演示了如何拆分数据。您可能还需要对其进行消毒 - 删除 batch 1,执行修剪等。

【讨论】:

  • 哇,非常感谢 gotqn,它就像魅力一样。数据完全按照我的意愿格式化。再次感谢
猜你喜欢
  • 2011-04-04
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多