SQL截取字符串分隔符中间部门的办法

Posted 贪狼木星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL截取字符串分隔符中间部门的办法相关的知识,希望对你有一定的参考价值。

需求:实际项目中需要截取第2到第3个逗号中间部分的内容

方案:

declare @str nvarchar(50);
set @str=‘11,222,3333,44444‘;
select @str as ‘字符串‘
select len(@str) as ‘字符长度‘
select charindex(‘,‘,@str,1) as ‘第一个逗号的索引值‘
select LEFT(@str,charindex(‘,‘,@str,1)-1) as ‘第一个值‘
select SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)) as ‘从第一逗号开始截取出后面的字符串‘
select LEFT(SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),CHARINDEX(‘,‘,SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),1)-1) as ‘中间的值‘
select SUBSTRING(SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),charindex(‘,‘,SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),1)+1,len(@str)) as ‘最后面的值‘ --从第二个逗号开始截取出其后的字符串
select LEFT(
SUBSTRING(SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),charindex(‘,‘,SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),1)+1,len(SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str))))
,CHARINDEX(‘,‘,SUBSTRING(SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),charindex(‘,‘,SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)),1)+1,len(SUBSTRING(@str,charindex(‘,‘,@str,1)+1,len(@str)))),1)-1
) as ‘第二中间的值‘













以上是关于SQL截取字符串分隔符中间部门的办法的主要内容,如果未能解决你的问题,请参考以下文章

sql截取第2个和第3个分隔符之间的字符串

oracle 按字符串截取字段

sqlserver 按分隔符截取字符串

sqlserver 按分隔符截取字符串

【急】sql 语句查询字段A 根据分隔符截取字符串 得到一个新的字段S,然后修改另一个字段B,把S赋值给B

sql怎么截取中文部分