use tempdb
go
declare @sql varchar(3000),@a varchar(3000),@b varchar(3000),@n int,@c int,@i int
set @c=1 
set @sql='G:\imgs\news\aa.jpg'
set @n=len(@sql)-len(replace(@sql,'\','')) 
set @i=1 
while @c<=@n 
begin 
--select substring(@sql,@i,patindex('%\%',@sql)-1) 
select @i=charindex('\',@sql,@i+1)+1
set @c=@c+1
end 
select @a=substring(@sql,1,@i-1)
select @b=substring(@sql,@i,len(@sql))
select @a
select @b

解决方案 »

  1.   

    如果这个字符串的前一段'G:\imgs\news\'是固定不变的,只有后面的图片的名称变化的话,就可以简单一点
    Declare @a varchar(20)
    Declare @b varchar(20)
    Set @a=Left('G:\imgs\news\aa.jpg',13)
    Set @b=Right('G:\imgs\news\aa.jpg',Len('G:\imgs\news\aa.jpg')-13)
    如果这个字符串的前一段'G:\imgs\news\'是变化的话
    Declare @a varchar(20)
    Declare @b varchar(20)
    Set @a=Left('G:\imgs\news\aa.jpg',CharIndex('\','G:\imgs\news\aa.jpg',(CharIndex('\','G:\imgs\news\aa.jpg',(CharIndex('\','G:\imgs\news\aa.jpg')+1))+1)))
    Set @b=Right('G:\imgs\news\aa.jpg',Len('G:\imgs\news\aa.jpg')-CharIndex('\','G:\imgs\news\aa.jpg',(CharIndex('\','G:\imgs\news\aa.jpg',(CharIndex('\','G:\imgs\news\aa.jpg')+1))+1)))