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 
相关推荐
知识分享小能手15 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 创建和使用索引 — 语法知识点及使用方法详解(12)
数据库·学习·sqlserver
山岚的运维笔记17 小时前
SQL Server笔记 -- 第50章 存储过程
数据库·笔记·sql·microsoft·oracle·sqlserver
知识分享小能手18 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 规则、默认值和完整性约束 —— 语法详解与实战案例(11)
sql·学习·sqlserver
山岚的运维笔记2 天前
SQL Server笔记 -- 第46章 窗口函数
数据库·笔记·sql·microsoft·sqlserver
C#程序员一枚2 天前
SqlServer如何创建全文索引
数据库·sqlserver
山岚的运维笔记3 天前
SQL Server笔记 -- 第34章:cross apply
服务器·前端·数据库·笔记·sql·microsoft·sqlserver
知识分享小能手3 天前
SQL Server 2019入门学习教程,从入门到精通,Transact-SQL数据的更新 —语法详解与实战案例(SQL Server 2019)(10)
数据库·学习·sqlserver
山岚的运维笔记4 天前
SQL Server笔记 -- 第42章:逻辑函数
java·服务器·笔记·sql·microsoft·sqlserver
知识分享小能手6 天前
SQL Server 2019入门学习教程,从入门到精通,认识函数 —语法详解与实战案例(SQL Server 2019)(7)
数据库·学习·sqlserver
永远是我的最爱7 天前
基于.NET的小小便利店前台收银系统
前端·sqlserver·.net·visual studio