问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql如何根据隔符分割字符串?

发布网友 发布时间:2022-04-28 22:32

我来回答

2个回答

热心网友 时间:2022-04-07 19:39

数据库自带的substring()、charindex()函数,可以根据需要截取字符串,但并不能实现分割

自己写分割函数,以下可以参考:

create function GetStr
(
 @str varchar(1024),  --要分割的字符串
 @split varchar(10),  --分隔符号
 @index int --取第几个元素
)
returns varchar(1024)
as
begin
 declare @location int
 declare @start int
 declare @next int
 declare @seed int
 set @str=ltrim(rtrim(@str))
 set @start=1
 set @next=1
 set @seed=len(@split)
 
 set @location=charindex(@split,@str)
 while @location<>0 and @index>@next
 begin
   set @start=@location+@seed
   set @location=charindex(@split,@str,@start)
   set @next=@next+1
 end
 if @location =0 select @location =len(@str)+1  
 return substring(@str,@start,@location-@start)
end

热心网友 时间:2022-04-07 20:57

举个例子,相信你可以看懂,举一反三的
/*
字符串分拆函数

--调用示例
select * from dbo.fsplit('a;adf;fd;ed;dh',';')
select * from dbo.fsplit('a,,adf,,fd,,ed,,dh',',,')
邹建 2003.07*/

--检查函数是否存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fsplit]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fsplit]
GO

--创建字符串分拆的函数
create function fsplit(
@str varchar(8000)--要分拆的字符串
,@spli varchar(10)--字符串分隔符
)
returns @re table(istr varchar(8000))
as
begin
declare @i int,@splen int
select @splen=len(@spli)
,@i=charindex(@spli,@str)
while @i>0
begin
insert into @re values(left(@str,@i-1))
select @str=substring(@str,@i+@splen,8000)
,@i=charindex(@spli,@str)
end
if @str<>'' insert into @re values(@str)
return
end

select * from dbo.fsplit(123|abc|000|777','|')
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
爱普生ME100不能打印 想去锦州西餐厅吃饭,环境好能拍照的,我主要是想拍照。。。食物很精致... Ipad Air连接电脑后itunes不显示设备 SuperJunior-it's you歌词 super junior lt's you的歌词翻译成中文? ...没钱,出来26了,究竟该不该去当兵?退役以后找工作 高中毕业生去入伍了没有考大学,请问退伍还可以继续升学历吗?有什么途径... 什么是免漆家具? 家里用免漆板打家具需多长时间好住进去 脐带血干细胞移植介绍 合肥二手房买卖公积金组合贷款,已到资金划拨阶段还要多久拿到放款呢 sql查询里 怎么拆分字符串(按“/”拆分) 合肥住房公积金怎么办理划拨还款??? 公积金贷款状态:资金划拨放款,是贷款成功了吗? 合肥公积金贷款资金划拨需要多久 三国全面战争 怎么招战场上的武将,一不小心 就把它杀死了! 公积金资金划拨是不是贷款已经批下来了 –安 三国全面战争武将有什么好处 住房公积金资金调拨是什么意思 《三国战争》名将阁 详解怎么玩 三国战争策略类网页游戏,历史武将是唯一的,质量好,不知道谁知道啊。 除去翼三国2。 找半天了!唉! 三国战争游戏武将奶妈都谁? 三国 全面战争怎么才能无限或者多收买武将? 历代武将谁最强,三国的武将按历史上说真的是万人敌么? 公积金贷款状态:资金划拨放款,是贷款成功了吗 三国战争天命武将获得 三国全面战争中后期文官武将太少怎么办?如何收买武将,买兵? 全面战争:三国单挑最强的是哪些武将? 胡莱三国金将哪个厉害 三国的战争手游那五个将领最强 公积金资金划拨中能离职么? SQL拆分逗号分隔的字符串 办理每年公积金自动划拨,需要些什么手续 oracle 如何用sql实现split功能 公积金中心资金划拨完成,还差银行放款是不是说明贷款已经批下来了,求专家指点,谢谢了 sql 字符串拆分?? 如何住房公积金自动划拨 sql怎么实现有c#里的spilt拆分字符串的方法啊 SQL字符串拆分的问题 土地使用证上写个划拨是什么意思?可以用于公积金贷款不? sql分割字符串查询,分组统计 住房公积金划拨需要提供的材料,要满足什么条件 Split(SQL) 公积金按份额划转 SQL 特定字符串分割 请教:公积金按月划拨的问题 为什么我不加群只能看见管理员和群主看不到群成员 sql字符串怎么按逗号分割 陶特里我的红包,不想要上边钱少的怎么能删掉 我问下怎么在没有加入qq群的情况下看到群内所有成员