</p> -- 分隔符' L3 S( i, S2 o" R8 r
@base nvarchar(max),
3 L. ~0 C6 m" ^6 Y( s! T9 m @index int2 p. u/ h2 C$ g! g- ~( T
set @separator='&'
4 E6 @6 Z) \, `! k* _ -- 截取参数名开头的字符串
+ R. ^* A8 d" H -- 'abc.do?pid=12124123&x=5'
" X9 u0 h. ?/ I0 ]" x7 D& |% u -- 变为
) T8 F" v: T- U } -- 'pid=12124123&x=5'
' e+ e: O. b5 u% E$ a0 r set @base = substring(@url,charindex(@param,@url,0),400)
2 C; @( s; |+ ]4 M( w2 b -- 替换掉参数头- W8 w* \( [1 U# ?. P
set @base = replace(@base,(@param+'='),'')5 R' e" v7 i5 ?8 P) x7 }) o
-- 'pid=12124123&x=5'
) z, j6 ~ u! ~ A* m2 Y0 J! k$ T -- 变为/ Z( r# y- P, l; J- D( ~5 Z. Z
-- '12124123&x=5'% X# p' ]% _+ J2 v
-- 基于上述结果取得分隔符位置% [5 {$ X3 ]7 K3 L/ c; M$ L& U( u
set @index = charindex(@separator,@base,0)
6 b. J! S7 m U; i2 ^6 T -- 当分割符存在则替换&符号开始的全部信息
+ W8 L# l* L! S- L -- 当分割符不存在则直接返回
$ K! `! M( ]0 ?' ~# W RETURN (case @index when 0 then @base else replace(@base,substring(@base,@index,400),'') end)
( l9 ~6 x* f. y: V% X END; l6 G4 ^+ P0 r! O. w
GO% h5 |( J0 u4 J
至于,这个字符串该有多大,400个字符应该足够用了。 |