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 
相关推荐
Traced back3 天前
#SQL Server 查询语句大全及实战应用指南
sqlserver
fen_fen4 天前
SqlServer新增schema和用户的命令
数据库·sqlserver
Clang's Blog10 天前
使用 SQL Server Management Studio 还原 .bak 备份文件的完整指南
数据库·sqlserver
雁凡彡11 天前
mybatis-plus中sqlserver 查询数组中指定位置前的数据
数据库·sqlserver·mybatis
dishugj12 天前
[SQLSERVER] Lock Waits/sec参数含义详解
数据库·oracle·sqlserver
l1t16 天前
使用docker安装sql server linux版
linux·sql·docker·容器·sqlserver
杨云龙UP17 天前
Windows环境下安装SQL Server 2016企业版+SP3补丁+SSMS连接操作手册_20251230
运维·服务器·数据库·sql·算法·sqlserver·哈希算法
杨云龙UP18 天前
SQL Server定时自动备份配置:使用SSMS维护计划向导配置数据库每日自动备份_20260101
运维·服务器·数据库·sql·sqlserver·桌面
牛魔王_120 天前
SqlServer 大数据量分页查询
数据库·sqlserver·分页·查询·翻页
banpu21 天前
Spring相关
数据库·spring·sqlserver