create table test (chr(chr) varchar(1000)) insert into test values( '123456789序号 急诊医学科243986程里 015902ZZZZZZZZZZZZZZZ一般物理降温 次 ')insert into test values( '123456789 急诊医学科243986程里 000108X00041650100010注射用头孢西丁钠 支 ') create function f_getstr(@str varchar(1000)) returns varchar(1000) begin declare @str1 varchar(1000) set @str1='' set @str=rtrim(ltrim(@str)) while charindex(' ',@str)>0 begin set @str1=@str1+'.'+left(@str,charindex(' ',@str)-1) set @str=ltrim(right(@str,len(@str)-charindex(' ',@str))) end return stuff(@str1,1,1,' ')+'.'+@str end select parsename(dbo.f_getstr(chr),4) as a,parsename(dbo.f_getstr(chr),3) as b, parsename(dbo.f_getstr(chr),2) as c,parsename(dbo.f_getstr(chr),1) as d from testdrop function f_getstr/* a b c d --------------- --------------------------- ----------------------------------------------- -------------- 123456789序号 急诊医学科243986程里 015902ZZZZZZZZZZZZZZZ一般物理降温 次 123456789 急诊医学科243986程里 000108X00041650100010注射用头孢西丁钠 支
BULK INSERT newtable(...)
FROM 'D:.../.../*.txt'
WITH
(
FIELDTERMINATOR =' ',
ROWTERMINATOR ='\n'
)
和向导导入都不准确。
要将记录拆分成11列插入到表对应的11个字段中
insert into test values(
'123456789序号 急诊医学科243986程里 015902ZZZZZZZZZZZZZZZ一般物理降温 次 ')insert into test values(
'123456789 急诊医学科243986程里 000108X00041650100010注射用头孢西丁钠 支 ')
create function f_getstr(@str varchar(1000))
returns varchar(1000)
begin
declare @str1 varchar(1000)
set @str1=''
set @str=rtrim(ltrim(@str))
while charindex(' ',@str)>0
begin
set @str1=@str1+'.'+left(@str,charindex(' ',@str)-1)
set @str=ltrim(right(@str,len(@str)-charindex(' ',@str)))
end
return stuff(@str1,1,1,' ')+'.'+@str
end
select parsename(dbo.f_getstr(chr),4) as a,parsename(dbo.f_getstr(chr),3) as b,
parsename(dbo.f_getstr(chr),2) as c,parsename(dbo.f_getstr(chr),1) as d
from testdrop function f_getstr/*
a b c d
--------------- --------------------------- ----------------------------------------------- --------------
123456789序号 急诊医学科243986程里 015902ZZZZZZZZZZZZZZZ一般物理降温 次
123456789 急诊医学科243986程里 000108X00041650100010注射用头孢西丁钠 支