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 
相关推荐
吃饭最爱7 天前
JUnit技术的核心和用法
数据库·oracle·sqlserver
tanxinji8 天前
SQLServer死锁监测方案:如何使用XE.Core解析xel文件里包含死锁扩展事件的死锁xml
sqlserver·死锁·扩展事件
代码的余温9 天前
SQL Server全链路安全防护
数据库·安全·sqlserver
张人玉9 天前
SQLSERVER数据备份
数据库·oracle·sqlserver
我想起个名字11 天前
sqlserver2008导入excel表数据遇到的问题
sqlserver·excel
浊尘11 天前
SQL server实现异地增量备份和全量备份
数据库·sqlserver
代码的余温11 天前
SQL Server服务管理
数据库·sqlserver
代码的余温11 天前
解析SQL Server核心服务与功能
数据库·sqlserver
YoungUpUp12 天前
【SQL Server 2022】保姆级SQL Server 详细图文下载安装教程
数据库·sql·sqlserver·sql server·sql server数据库·sql server 2022·sql 数据库
代码的余温12 天前
SQL Server核心架构深度解析
数据库·sqlserver·架构