sql-server - 如何在 SQL Server 中拆分字符串并将值插入到表中

标签 sql-server tsql

我有一个像这样的字符串:

72594206916,2,1/2/08,Tacoma,WA:72594221856,5,5/7/13,San Francisco,CA:72594221871,99,12/30/12,Dallas,TX

这基本上是 3 行中每行 5 个值(来自 ASP.NET 网格)。我需要在 SQL Server 表中将此字符串拆分为 5 列和 3 行。各个值用逗号分隔,行用冒号分隔。

我找到了一个将字符串分成几部分的函数,我可以从该字符串中获取行:

declare @testString varchar(100)
set @testString = '72594206916,2,1/2/08,Tacoma,WA:72594221856,5,5/7/13,San Francisco,CA:72594221871,99,12/30/12,Dallas,TX'

select *
from dbo.SplitString(@testString, ':')

给我:

72594206916,2,1/2/08,Tacoma,WA
72594221856,5,5/7/13,San Francisco,CA
72594221871,99,12/30/12,Dallas,TX

这给了我一个包含三行的结果集(该函数输出一个表)。我可以同时再次调用此函数并将其输出以某种方式插入表中吗?

最佳答案

假设您的拆分返回列名称​​item

insert <table> (colname)
select y.item
from dbo.SplitString(@testString, ':') x
cross apply
dbo.SplitString(x.item, ',') y

关于sql-server - 如何在 SQL Server 中拆分字符串并将值插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885076/

相关文章:

sql - 搜索值列表的出现

sql - 什么会导致链接服务器返回有限数量的数据?

sql - 如何在 SQL Server 中实现多语言内容的全文搜索

asp.net - Azure SQL 数据库 v12 - 全文查询

sql - 要连接的 Sum 的等效字符串

带组和状态的 SQL Select 查询 (SQL server 2008)

sql-server - 跨服务器管理身份/主 key

html - 使用 SQL FOR XML 创建 HTML 表

c# - 从 C# 发送 SQL 查询并将其附加到过程中时排序不起作用

sql-server - SQL Server base64 编码存储函数