最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
sql 处理以字符隔开的字符串(类似split)的处理方法
时间:2022-06-29 07:51:58 编辑:袖梨 来源:一聚教程网
例子一
CREATE PROCEDURE dbo.Vip_SendMails
@userids varchar(MAX),
@fromwho varchar(50),
@subject varchar(300),
@c varchar(MAX),
@split varchar(2)
AS
BEGIN
while(charindex(@split,@userids)<>0)
begin
insert into VipMail (fromwho,towho,subject,content)
values (@fromwho,substring(@userids,1,charindex(@split,@userids)-1),@subject,@c)
set @userids = stuff(@userids,1,charindex(@split,@userids),'')
end
END
GO
--调用 注意:格式要是“xxx,sss,fff,hhh,”最后一个也要加上
exec dbo.Vip_SendMails 'sada,qweqw,asdsadasds,iioo,kkkk,dddd,wqwqweqweq,','sssss','测试标题','内容内容',','
例子二
有分号之前的长度减去没分号之后的长度就是数组长度
select len('1:10:100')-len(replace('1:10:100',':',''))
例子三:
定义一个函数,在调用该函数去取值
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
--调用示例:select dbo.Get_StrArrayLength('78,1,2,3',',')
--返回值:4
相关文章
- 《弹壳特攻队》永久不过期的最新可用兑换码合集 06-16
- 《暖雪》终业DLC新流派灵剑修罗开荒有哪些 06-16
- Metaplanet 砸 1.17 亿美元加码比特币!持币量突破 1 万枚、超越 Coinbase 06-16
- 《魔力宝贝:复兴》1~30级主线困难有哪些快速通关方法 06-16
- 《欢乐钓鱼大师》稀有鱼垂钓有哪些方法 06-16
- SNORT币手续费低吗?2025币安交易所低成本教程 06-16