频道栏目
首页 > 资讯 > 其他 > 正文

SQLServer字符串的截取

12-03-04        来源:[db:作者]  
收藏   我要投稿
公司日志系统变态,用户操作url记录在数据库中,我需要从一条信息中找到参数pid的值,而pid参数后面是否有参数未知,无奈只好自己写个函数处理。

  数据库是M$的 SQL 2005

  Sql代码

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  -- =============================================

  -- Author:

  Snowolf

  -- Create date: 2008-10-17

  -- Description:

  从URL中获取参数值

  -- =============================================

  CREATE FUNCTION getParam(@url nvarchar(max),@param nvarchar(max))

  RETURNS nvarchar(max)

  AS

  BEGIN

  declare

  @separator nvarchar(max),

  -- 分隔符

  @base nvarchar(max),

  @index int

  set @separator='&'

  -- 截取参数名开头的字符串

  -- 'abc.do?pid=12124123&x=5'

  -- 变为

  -- 'pid=12124123&x=5'

  set @base = substring(@url,charindex(@param,@url,0),400)

  -- 替换掉参数头

  set @base = replace(@base,(@param+'='),'')

  -- 'pid=12124123&x=5'

  -- 变为

  -- '12124123&x=5'

  -- 基于上述结果取得分隔符位置

  set @index = charindex(@separator,@base,0)

  -- 当分割符存在则替换&符号开始的全部信息

  -- 当分割符不存在则直接返回

  RETURN (case @index when 0 then @base else replace(@base,substring(@base,@index,400),'') end)

  END

  GO

  至于,这个字符串该有多大,400个字符应该足够用了。

相关TAG标签
上一篇:注重服务器访问权限控制的条件
下一篇:sys为何不能以管理员的身份登陆
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站