MSSQLServer字符串截取计算机等级考试

文章作者 100test 发表时间 2009:06:15 06:40:17
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  计算机等级考试四级应用题解析汇总

  2009年下半年全国计算机三级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机三级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库

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

  2009年9月全国计算机等级考试时间及科目预告

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  全国计算机等级考试历年真题及答案

  2009年上半年全国计算机等级考试试题及答案



相关文章


MSSQLServer2005安装注意事项计算机等级考试
MSSQLServer字符串截取计算机等级考试
MSSQLServer2005无法删除数据库作业计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛