记 sqlserver 分割拆分规则或不规则字符串

--LEFT函数从字符串左侧开始截取,两个参数(字符串,截取长度)

--RIGHT函数从字符串右侧开始截取,两个参数(字符串,截取长度)

--CHARINDEX函数获取字符串中指定字符的下标,三个参数(要寻找的字符,字符串,从哪个下标开始找字符),第三个参数按需给

--SUBSTRING函数按下标和长度截取字符串,三个参数(字符串,开始下标第一位为1,截取长度)

--LEN函数获取字符串的长度,一个参数(字符串)

DECLARE @str NVARCHAR(100)
SET @str='AAA-BB-C'

--字符串格式标准,分割符位置都一样可以用下面的
SELECT LEFT(@str,3) 取AAA
,SUBSTRING(@str,CHARINDEX('-',@str)+1,2) 取BB
,RIGHT(@str,1) 取C

--字符串格式不标准用下面的方式 关键点就是CHARINDEX第三个参数的设定,从哪个下标开始
--如同一列的值  
--  AAA-BB-C
--  AAA-BB-CCCC-D
--  AAA-BB-CCCC-D-F
SET @str='AAA-BBBBBB-CCC-DD-F'

SELECT SUBSTRING(@str,1,CHARINDEX('-',@str)-1) 取第一个分割符前的值
,SUBSTRING(@str,CHARINDEX('-',@str)+1,CHARINDEX('-',@str,CHARINDEX('-',@str)+1)-CHARINDEX('-',@str)-1) 取第一个分割符和第二个分割符中间的值
,LEFT(@str,CHARINDEX('-', @str,LEN(@str)-2)-1) 取最后一个分割符前面的值
,RIGHT(@str,LEN(@str)-CHARINDEX('-',@str,LEN(@str)-2)) 取最后一个分割符后面的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值