考试辅导

名师推荐

试听名师的课 查看所有名师

三级数据库:MSSQLServer字符串截取 发布时间:2010-06-27 17:31 来源:互联网

三级数据库:MSSQLServer字符串截取

  公司日志系统变态,用户操作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个字符应该足够用了。

第一考试网友情提示:如果您遇到任何疑问,请登录第一考试网考试辅导频道或添加qq:,第一考试网以“为考友服务”为宗旨,秉承“快乐学习,轻松考试!”的理念,旨在为广大考友打造一个良好、温馨的学习与交流平台,欢迎持续关注。以上是小编为大家推荐的《三级数据库:MSSQLServer字符串截取》相关信息。

编辑推荐

计算机等级考试辅导:SQL中JOB的运行状态

计算机等级考试辅导:SQLSERVER2005的引用

三级:把数据导入不同的表空间

2009年三级信息管理技术辅导:战略数据规划

教你三种方法卸载Windows7SP1Beta