Sql 如何拆分非结构化数据并将其插入表中
如何拆分非结构化数据并将其插入表中 下面的数据表示非结构化数据,我需要将其格式化为一组不同的列并将其插入表中Sql 如何拆分非结构化数据并将其插入表中,sql,sql-server,Sql,Sql Server,如何拆分非结构化数据并将其插入表中 下面的数据表示非结构化数据,我需要将其格式化为一组不同的列并将其插入表中 ABB0512 709023378812005327020220953171 025336141992033270207033123002663270200401ABC02055 ABC02055CBL MURARJIPET,MALAD MAlAD MHIN3270204 ABC
ABB0512 709023378812005327020220953171 025336141992033270207033123002663270200401ABC02055 ABC02055CBL MURARJIPET,MALAD MAlAD MHIN3270204 ABC 333000000000050000000000000050000000000000000000333000000000050000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000
ABB0222 709023378812005327020220953171 025222141992033270207033123002663270200401PQR02055 PQR02055CBL MURARJIPET,THANE THANE MHIN3270204 PQR 222000000000010000000000000010000000000000000000222000000000010000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000
格式化后的数据结构如下所示:
----a---------b------------c---------------------d-----e
========================================================================
ABC02055 ABC02055 CBL MURARJIPET,MALAD MAlAD MHIN
PQR02055 PQR02055 CBL MURARJIPET,THANE THANE MHIN
下面的查询仅给出第一个字符串的预期结果
Declare @variablestring varchar(max)
set @variablestring = substring(@strval,0,407)
print @variablestring
INSERT INTO tbldummyEntries(A, B, C,D,E,F)
values( CAST(SUBSTRING(@variablestring, 84, 15) AS Varchar(MAX)) ,
CAST(SUBSTRING(@variablestring, 99, 8) AS Varchar(MAX)) ,
CAST(SUBSTRING(@variablestring, 107, 22) AS Varchar(MAX)),
CAST (SUBSTRING(@variablestring, 130, 13) AS Varchar(MAX)),
CAST (SUBSTRING (@variablestring, 143, 5) AS Varchar(MAX)),
CAST (SUBSTRING(@variablestring , 148 , 261) AS Varchar(MAX)))
set @strval=REPLACE(@strval,@variablestring,'')
在第一个条目之后,如何为下面的条目复制它
任何帮助都将不胜感激。我尝试了以下方法:(根据您的格式保持循环长度)
您可以使用substring函数拆分数据行。请考虑如何手动执行此操作,然后将其转换为查询中的操作。如果您确实列出了所需的规则并显示了一些努力(发布查询),我相信我们会很乐意提供帮助。。。。或者也许有人会帮上忙。首先,您是否已按原样将其加载到表中?别让我们久等了,我已经尝试过使用substring函数,但不知道如何复制它以用于以后的条目。已经用我到现在为止尝试过的查询进行了编辑!您可以使用WITH FORMATFILE大容量插入文件。要创建格式文件,请使用本文。当然,SQLServer必须具有对数据文件和格式化文件的读取权限,很可能您无法从用户配置文件导入文件
Declare @variablestring varchar(max),@strval varchar(max)
set @strval='ABB0512 709023378812005327020220953171 025336141992033270207033123002663270200401ABC02055 ABC02055CBL MURARJIPET,MALAD MAlAD MHIN3270204 ABC 333000000000050000000000000050000000000000000000333000000000050000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000
ABB0222 709023378812005327020220953171 025222141992033270207033123002663270200401PQR02055 PQR02055CBL MURARJIPET,THANE THANE MHIN3270204 PQR 222000000000010000000000000010000000000000000000222000000000010000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000'
set @variablestring = substring(@strval,0,407)
while len(@strval)>406
begin
INSERT INTO tbldummyEntries(A, B, C,D,E,F) values
select CAST(SUBSTRING(@variablestring, 84, 15) AS Varchar(MAX)) ,
CAST(SUBSTRING(@variablestring, 99, 8) AS Varchar(MAX)) ,
CAST(SUBSTRING(@variablestring, 107, 22) AS Varchar(MAX)),
CAST (SUBSTRING(@variablestring, 130, 13) AS Varchar(MAX)),
CAST (SUBSTRING (@variablestring, 143, 5) AS Varchar(MAX)),
CAST (SUBSTRING(@variablestring , 148 , 261) AS Varchar(MAX))
set @strval=REPLACE(@strval,@variablestring,'')
set @variablestring = substring(@strval,0,407)
end