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 
相关推荐
山岚的运维笔记18 小时前
SQL Server笔记 -- 第42章:逻辑函数
java·服务器·笔记·sql·microsoft·sqlserver
知识分享小能手3 天前
SQL Server 2019入门学习教程,从入门到精通,认识函数 —语法详解与实战案例(SQL Server 2019)(7)
数据库·学习·sqlserver
永远是我的最爱4 天前
基于.NET的小小便利店前台收银系统
前端·sqlserver·.net·visual studio
choke2334 天前
软件测试任务测试
服务器·数据库·sqlserver
2501_927993534 天前
SQL Server 2022安装详细教程(图文详解,非常详细)
数据库·sqlserver
山岚的运维笔记5 天前
SQL Server笔记 -- 第20章:TRY/CATCH
java·数据库·笔记·sql·microsoft·sqlserver
山岚的运维笔记5 天前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
Traced back6 天前
SQL Server 核心语法+进阶知识点大全(小白版)
数据库·sqlserver
山岚的运维笔记6 天前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
松涛和鸣7 天前
70、IMX6ULL LED驱动实战
linux·数据库·驱动开发·postgresql·sqlserver