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 
相关推荐
北京_小杰子1 天前
Windows10本地安装SQLserver数据库连接的过程
数据库·windows·sqlserver·php
山岚的运维笔记2 天前
SQL Server笔记 -- 第86章:查询存储
笔记·python·sql·microsoft·sqlserver·flask
汇智信科2 天前
汇智信科网络考试系统:以技术赋能,重构在线测评新范式
linux·数据库·mysql·oracle·sqlserver·java技术
山岚的运维笔记3 天前
SQL Server笔记 -- 第85章:查询提示
数据库·笔记·sql·microsoft·sqlserver
知识分享小能手3 天前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 开发企业人事管理系统 — 语法知识点及使用方法详解(21)
sql·学习·sqlserver
No8g攻城狮4 天前
【SQL】MySQL中空值处理COALESCE函数
数据库·sql·mysql·postgresql·sqlserver
山岚的运维笔记4 天前
SQL Server笔记 -- 第80章:分页
java·数据库·笔记·sql·microsoft·sqlserver
知识分享小能手4 天前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 新增功能 — 语法知识点及使用方法详解(20)
数据库·学习·sqlserver
山岚的运维笔记4 天前
SQL Server笔记 -- 第78章:MS SQL Server 基本 DDL 操作
数据库·笔记·sql·microsoft·oracle·sqlserver
山岚的运维笔记5 天前
SQL Server笔记 -- 第73章:排序/对行进行排序
数据库·笔记·后端·sql·microsoft·sqlserver