sqlserver中字符串根据某个字符进行截取

**字符串:**11-22-333-4444-55-666

**截取后的内容:**11、22、333、4444、55、666

注:可自定义一张临时表用于存放截取的内容

sql 复制代码
DECLARE @str NVARCHAR(50)='11-22-333-4444-55-666'  --字符串
DECLARE @custr NVARCHAR(5)='-'   --截取字符
DECLARE @length INT=LEN(@str)    --总长度
DECLARE @count INT=(@length - LEN(REPLACE(@str, @custr, ''))) / LEN(@custr) --截取字符总个数
DECLARE @i INT=0
DECLARE @j INT=0
DECLARE @e INT=0
DECLARE @newstr NVARCHAR(MAX)=''  --新字符串
DECLARE @restr NVARCHAR(max)=''   --返回字符


WHILE(@i<=@count)
BEGIN 
	--截取字符串
	SET @newstr=RIGHT(@str,@length-@j)

	SET @e=CHARINDEX(@custr,@newstr)

	IF @e>0
	SET @restr=SUBSTRING(@newstr,0,@e)
	ELSE 
	SET @restr=SUBSTRING(@newstr,0,LEN(@newstr))

	SELECT @restr

	SET @j=@j+LEN(@restr)+1

	SET @i=@i+1
END 
相关推荐
Rhys..14 小时前
Jenkins上无法查看已成功生成的Junit报告
junit·sqlserver·jenkins
卡西里弗斯奥1 天前
【达梦数据库】dblink连接[SqlServer/Mysql]报错处理
数据库·mysql·sqlserver·达梦
wyk123_0462 天前
Django 连接(sqlserver)数据库方法
数据库·sqlserver·django
FREE_QIU3 天前
【SQL server】存储过程模板
sql·sqlserver
离陌殇殃6 天前
数据库与表的基本操作
数据库·oracle·sqlserver
mosquito_lover17 天前
基于Python flask-sqlalchemy的SQLServer数据库管理平台
服务器·数据库·python·sqlserver·flask·dba
C66668888 天前
SQL Server安装流程
数据库·sqlserver
幻想趾于现实9 天前
SQLServer的创建,表创建,主键,约束,模糊查询
数据库·sqlserver
紫罗龙思14 天前
SQL Server2022版详细安装教程(Windows)
java·sql·sqlserver
lusklusklusk16 天前
Sqlserver DBCC Check 遇到Msg 3853报错涉及sys.columns和sys.objects信息不匹配的解决方法
数据库·sqlserver