SQL server查询如何统一去除某个字段前几位字符

m0_63255221 2023-05-05 11:19:46

请教各位大佬,SQL server查询如何去除FullPathName_CHS 字段前七位字符

 

...全文
574 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 版主 2023-05-06
  • 打赏
  • 举报
回复

使用截取字符串的函数SUBSTRING,楼上的代码健壮性较好,对长度做了判断,避免长度不够7出现错误

zhang_Kylin 2023-05-05
  • 打赏
  • 举报
回复

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。可以避免出现截取长度超过字符串长度的错误

吉普赛的歌 版主 2023-05-05
  • 打赏
  • 举报
回复

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

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧