借助 SUBSTRING、CHARINDEX、LEN 按指定字符截取字符串
DECLARE @name NVARCHAR(50)
SET @name = '000001-23534324234'
-- 借助 SUBSTRING、CHARINDEX、LEN 三个函数,实现按 "-" 字符截取
SELECT SUBSTRING(
@name,
CHARINDEX('-', @name) + 1,
LEN(@name) - CHARINDEX('-', @name) + 1
)Code language: CSS (css)
函数拆解说明
| 函数 | 作用 | 本例中的值 |
|---|---|---|
CHARINDEX('-', @name) | 查找 - 在字符串中的位置 | 7 |
CHARINDEX('-', @name) + 1 | 截取起始位置(跳过 - 本身) | 8 |
LEN(@name) - CHARINDEX('-', @name) + 1 | 截取长度(从 - 之后到末尾) | 12 |
执行结果
23534324234
更简洁的写法
如果只需要截取 - 之后的所有内容,可以直接用 RIGHT 函数替代:
SELECT RIGHT(@name, LEN(@name) - CHARINDEX('-', @name))Code language: CSS (css)
效果相同,但代码更简洁易读。