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 
相关推荐
z***02609 小时前
SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)
spring boot·mysql·sqlserver
v***87041 天前
【SqlServer】SQL Server Management Studio (SSMS) 下载、安装、配置使用及卸载——保姆级教程
数据库·sqlserver
jackletter2 天前
五大关系数据库(sqlserver、mysql、oracle、pgsql、sqlite)如何结合c#存取时间
mysql·oracle·sqlserver
杨云龙UP3 天前
SQL Server 备份异地同步 + 清理脚本
运维·服务器·数据库·sql·mysql·sqlserver
v***59834 天前
【SQL Server】超详细SQLServer日期转换、字符串、数学、聚合等常用函数大全(最新版)
数据库·sqlserver
e***19356 天前
【SqlServer】SQL Server Management Studio (SSMS) 下载、安装、配置使用及卸载——保姆级教程
数据库·sqlserver
合作小小程序员小小店6 天前
桌面开发,超市管理系统开发,基于C#,winform,sql server数据库
开发语言·数据库·sql·microsoft·sqlserver·c#
quweiie6 天前
thinkphp8.0链接SQL SERVER2022数据库
数据库·sqlserver·thinkphp
wangqiaowq7 天前
SQL server 判断表中是否有字段
sqlserver
2501_941878749 天前
边缘计算与云计算:携手应对数字化转型的挑战
sqlserver