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 
相关推荐
woshilys14 小时前
sql server 查看io资源使用
数据库·sqlserver
敲敲敲-敲代码4 天前
【SQL实验】高级查询(三)含附加数据库操作
数据库·sql·sqlserver
敲敲敲-敲代码4 天前
【SQL实验】更新操作
数据库·笔记·sql·学习·sqlserver
geovindu4 天前
string split function in postgreSQL 17.01 or SQL Server2019 or mySQL 9.0
数据库·sql·mysql·postgresql·sqlserver
qtvb19874 天前
Sql server 备份还原方法
数据库·sqlserver
威哥爱编程7 天前
SQL Server 数据太多如何优化
数据库·sql·sqlserver
woshilys8 天前
sql server 文件和文件组介绍
sqlserver
CodeCraft Studio9 天前
【实用技能】在 SQL Server 中使用 LIMIT 子句的替代方案
数据库·sql·sqlserver
我是苏苏9 天前
数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置
数据库·sqlserver
小蜗的房子10 天前
SQL Server 2022安装要求(硬件、软件、操作系统等)
运维·windows·sql·学习·microsoft·sqlserver·操作系统