sqlserver 从数据源左侧截取到遇到特殊字符的最短的子字符串
select dbo.sjGetPreStr('1234^5*6/-33_','[]-_=+*&^') ===> 1234
Create function [dbo].[sjGetPreStr](@str varchar(1000),@pointArr varchar(100)) returns varchar(1000) as begin declare @res varchar(1000) = '' declare @i int = 1 declare @c varchar(4) = '' declare @j int = 0 declare @min varchar(1000) = '' declare @temp varchar(1000) = '' set @str = rtrim(ltrim(@str)) set @pointArr = rtrim(ltrim(@pointArr)) set @min = @str if len(@str) = 0 or len(@pointArr) = 0 begin set @res = 'Parameters cannot be empty' end else begin while @i <= len(@pointArr) begin set @c = substring(@pointArr,@i,1) set @j = charindex(@c,@str) if @j > 0 begin set @temp = substring(@str,1,@j - 1) if len(@temp) < len(@min) begin set @min = @temp end end set @i = @i + 1 set @j = 0 end set @res = @min end return @res end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现