34,873
社区成员
发帖
与我相关
我的任务
分享请教各位大佬,SQL server查询如何去除FullPathName_CHS 字段前七位字符

使用截取字符串的函数SUBSTRING,楼上的代码健壮性较好,对长度做了判断,避免长度不够7出现错误
SELECT SUBSTRING(FullPathName_CHS,
CASE WHEN LEN(FullPathName_CHS) < 7 THEN 1 ELSE 8 END,
CASE WHEN LEN(FullPathName_CHS) < 7 THEN LEN(FullPathName_CHS) ELSE LEN(FullPathName_CHS) - 7 END) AS FullPathName
FROM YourTableName
使用了 CASE WHEN 语句来判断 FullPathName_CHS 字段的长度。如果其长度小于 7,则从第一个字符开始截取,截取的长度为其长度;否则,从第八个字符开始截取,截取的长度为字符串长度减去 7。可以避免出现截取长度超过字符串长度的错误
DECLARE @t TABLE (
FullPathName_CHSERP NVARCHAR(MAX)
)
INSERT INTO @t VALUES ('ERP信息系统广东在勤实业发展有限公司')
INSERT INTO @t VALUES ('ERP信息系统广东在勤实业发展有限公司')
INSERT INTO @t VALUES ('ERP信息系统广东在勤实业发展有限公司')
INSERT INTO @t VALUES ('ERP信息系统广东在勤实业发展有限公司')
INSERT INTO @t VALUES ('ERP信息系统广东在勤实业发展有限公司')
SELECT SUBSTRING(t.FullPathName_CHSERP,8,LEN(t.FullPathName_CHSERP)) FROM @t AS t