sql 如何 拆分 字符串

id:0DF2214E84E6476A311A420005138A4D,ScNo:PI090001,OrderNo:2,ContractItems:符合国标GB-6675 标准,PrintTitle:质量条款-
id:8726C1554F4D428998949450D43BCC97,ScNo:PI090001,OrderNo:3,ContractItems:符合标准,PrintTitle:质量条款

这个字符串 如何获取 id, scno, orderno,contractitems,printtitle 的数据插入数据库

with t as (select

'id:8726C1554F4D428998949450D43BCC97,ScNo:PI090001,OrderNo:3,ContractItems:符合标准,PrintTitle:质量条款' as zd from dual)
/*select instr(zd,',',1,1),substr(zd,4,35) from t ;*/
select substr(zd,instr(zd,':',1,1)+1,instr(zd,',',1,1)-instr(zd,':',1,1)-1 ), substr(zd,instr(zd,':',1,2)+1,instr(zd,',',1,2)-instr(zd,':',1,2)-1 ),substr(zd,instr(zd,':',1,3)+1,instr(zd,',',1,3)-instr(zd,':',1,3)-1 ) ,substr(zd,instr(zd,':',1,4)+1,instr(zd,',',1,4)-instr(zd,':',1,4)-1 ) ,substr(zd,instr(zd,':',1,5)+1,length(zd)-instr(zd,':',1,5) )from t ; 这只是初步解法,具体的需要你说明是从哪里取数据的
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-19
你的要求写的不太清楚,请补充一下。
你要导入的是文件吗?
数据量大概有多少行?
你这个导入是经常性要这样,还是只是临时导入?
数据库是什么数据库?(orale/db2/mysql/sqlserver?还是其他的数据库)
第2个回答  2010-09-19
megetgod的解法不错。
只是如果数据量小就罢了,数据量大了在SQL中处理效率不高。建议用C、C++写个小程序处理一下为好。
第3个回答  2010-09-19
sql中提供了很多拆分字符串的函数,到百度找资料吧本回答被网友采纳

SQL拆分逗号分隔的字符串
要处理逗号分隔的字符串,SQL提供了一个简单的方法。首先,打开SQL环境,点击新建查询功能,初始化一个查询操作。在处理的阶段,你需要有一个待分割的字符串,例如:"apple,banana,orange"。在这个字符串中,逗号起到了分隔各个元素的作用。接下来,利用SQL的`PARSENAME`函数进行分割。这个函数的第二个参...

SQL server根据逗号拆分字符串
select a.step_no,a.step_name, len(a.submit_param) - len(replace(a.submit_param, ',', '')) as dhs,--有多少个逗号 len(a.submit_param) as zc,--字符串总长度 len(replace(a.submit_param, ',', '')) as d,--替换逗号的字符串长度 charindex(',', a.submit_param + '...

SQL拆分逗号分隔的字符串
1、首先点击新建查询按钮,新建一个查询。2、然后准备一个要分割的字符串,如下图所示。3、接着用parsename进行分割,第二个参数是取分割后的第几个,如下图所示,第一个是最后一个位置。4、然后最后一个才是第一个的位置。5、接下来就可以通过位置把他们都取出来了。6、最后就得到了字符串各个分...

SQL技巧:分割函数
split_part() 函数:这个函数可以根据指定的分隔符来分割字符串。它接受三个参数:要分割的字符串,分隔符和返回部分的位置(基于索引的)。例如,使用 SQL 从 "PostgreSQL-SQL-3" 中提取出第二个 "-" 分隔的元素,返回值为 'SQL'。regexp_split_to_array() 函数:这个函数可以将一个字符串通过...

SQL server进阶技能篇:字符串内分拆截取
首先,定义变量@cfq用于存储输入字符串,并计算其中逗号数量。巧妙利用字符串长度与去掉逗号后的长度差值计算出逗号总数。同时引入@type变量表示需提取的字段序号。函数逻辑设计围绕@type值变化,针对不同情况,逐步构建字符串拆分逻辑。当输入字符串仅包含一个有效字段,或@type值超过字段总数时,函数返回空值...

在SQL语句中如何将字符串分割后再与另一个字符串链接
select A||substr(B,1,1) col1 from tab where length(B)>=1 union all select A||substr(B,2,1) from tab where length(B)>=2 union all select A||substr(B,3,1) from tab where length(B)>=3 union all select A||substr(B,4,1) from tab where length(B)>=4 ...

sql语句进行字符串分割
substr('Hello World',1,1) \/\/返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符 substr('Hello World',2,4) \/\/返回结果为 'ello'substr('Hello World',-3,3)\/\/返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符 ...

sql查询里 怎么拆分字符串(按“\/”拆分)
先建立一个自定义函数,之个函数非常有用,建议收入自已的数据库CREATE FUNCTION mysplit--将以某分隔符分段的字串,按指定的顺序号提取子串:(@str nvarchar(2000),--源字串 @sn int, --提取序号 @Deli varchar(1) --分隔符 ) RETURNS varchar(100)ASBEGINdeclare @first int,@la...

sql怎么实现有c#里的spilt拆分字符串的方法啊
CREATE FUNCTION uf_StrSplit (@origStr varchar(7000), --待拆分的字符串 markStr varchar(100)) --拆分标记,如','RETURNS @splittable table (str_id varchar(4000) NOT NULL, --编号ID string varchar(2000) NOT NULL --拆分后的字符串 )AS BEGIN declare @strlen int,@...

sql如何根据隔符分割字符串?
自己写分割函数,以下可以参考:create function GetStr( @str varchar(1024), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元素)returns varchar(1024)asbegin declare @location int declare @start int declare @next int declare @seed int set @str=ltrim(...

相似回答