SqlServer从左边 最后 中间截取字符串

SqlServer从左边 最后 中间截取字符串(摘录)2009-06-01 15:04

已知: 字段A='F:\photo\Winter Leaves.jpg'

要求:分段截取每段字符[字段A不能为TEXT类型,否则报错]
解决方法:

---截取字符串A的第一个\左边的字符串
select left(A,charindex('/',A)-1)      MEMO:charindex('\',A)-1   -在字符串中获得'\'的位置号
输出结果:F:                                                                        -减1即去掉'\'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

---截取\中间的字符串
select left(stuff(A,1,charindex('/',A),''),charindex('/',stuff(A,1,charindex('/',A),''))-1)
输出结果:photo         
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                               注:stuff(A,1,charindex('/',A),'') -只是将'\'前的串用''代替,后面全样输出

                               注: 结果应为:photo\Winter Leaves.jpg     因为前面被''代替


---截取最后一个\后面的字符串
select reverse(left(reverse(A),charindex('/',reverse(A))-1))    注:此处用两个reverse是将反的再正过来
输出结果:Winter Leaves.jpg

你可能感兴趣的:(3,SQL,SERVER,学习)