SQL Server 截取字符串数组,获取字符串指定值

截取字符串:例如 qweqe,1231423,werwer;qweqe,1231423,werwer

返回一个表
这里写图片描述

    --split:循环截取法
CREATE FUNCTION f_splitSTR(
@s   varchar(8000),   --待分拆的字符串
@split varchar(10)     --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
 DECLARE @splitlen int
 SET @splitlen=LEN(@split+'a')-2--多位分隔字符串比如 ';;',';,'等
 WHILE CHARINDEX(@split,@s)>0
 BEGIN
  INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
  SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
 END
 INSERT @re VALUES(@s)
 RETURN
END
GO

选取指定字符串值
例如: 123,456,789,012
我要获取456这个值
select dbo.f_split_l(‘123,456,789,012’,’,’,’2’)
就能得到 456这个值
这里写图片描述

CREATE FUNCTION dbo.f_split_l(--方法:循环截取法,选取指定位置的字符串
@s   varchar(8000),   --待分拆的字符串
@split varchar(10),     --数据分隔符
@in int     --取的第几条数据
)RETURNS VARCHAR(100)
AS
BEGIN
 DECLARE @splitlen int,@cou int,@re varchar(100)
 SET @s=@s+@split  --在字符串最后添加一个数据分隔符
 SET @splitlen=LEN(@split+'a')-2
 SET @cou=0
 WHILE CHARINDEX(@split,@s)>0 AND @in>@cou
 BEGIN
  SET @re=(LEFT(@s,CHARINDEX(@split,@s)-1))
  SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
  SET @cou=@cou+1
 END
 IF(CHARINDEX(@split,@s)<=0) AND @in>@cou
    SET @re=null
 RETURN @re
END
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server中,你可以使用LEFT()、RIGHT()和SUBSTRING()函数截取字符串。LEFT()函数用于从字符串的左边开始截取指定个数的字符,RIGHT()函数用于从字符串的右边开始截取指定个数的字符,SUBSTRING()函数用于从字符串的中间截取指定长度的字符。 例如,如果你想要截取字符串'SqlServer_2014'的前3个字符,你可以使用LEFT()函数,如下所示: ``` SELECT LEFT('SqlServer_2014', 3) ``` 这将返回结果'Sql'。 如果你想要截取字符串'SqlServer_2014'的后4个字符,你可以使用RIGHT()函数,如下所示: ``` SELECT RIGHT('SqlServer_2014', 4) ``` 这将返回结果'2014'。 如果你想要从字符串'SqlServer_2014'的第4个字符开始截取长度为6的字符,你可以使用SUBSTRING()函数,如下所示: ``` SELECT SUBSTRING('SqlServer_2014', 4, 6) ``` 这将返回结果'Server'。 所以,根据你的需求,你可以选择使用LEFT()、RIGHT()或SUBSTRING()函数截取字符串。 #### 引用[.reference_title] - *1* *2* *3* [sql server提供三种常用截取字符串方法,LEFT()、RIGHT()、SUBSTRING()](https://blog.csdn.net/Mark_Luo123/article/details/128653346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值