Sql Server 自定义标量值函数 获取URL请求参数

sql 中获取RUL中指定的参数的值

http://www.hztech.com/aaa.aspx?ab=1&bc=2&ac=3
获取 1,2,3

 

使用方法:

[dbo].[GetURLPara]('ab=1&bc=2&ac=3','bc')

复制代码
CREATE   FUNCTION [dbo].[GetURLPara] 
 (
   @String nvarchar(max),  --要分割URL请求参数列表 a=1&b=2&c=3

   @uriKey nvarchar(50) --要取的参数key 如上的: a,b,c
  )
  returns nvarchar(1024)
  as
 begin
    declare @FlagBetKV nvarchar(10)
    declare  @split nvarchar(10)  --多个kev-value之间的分隔符  
    set @FlagBetKV='='--key 与 value之间 分隔符
    declare @key nvarchar(200)
    declare @value nvarchar(200)
    declare @keyvalue nvarchar(200)
    
    declare @location int
    declare @start int
    declare @next int
    declare @seed int

    set @start=1
 
    set @split='&'--
    set @String=ltrim(rtrim(@split+@String+@split))
    set @seed=len(@split)
  
    set @key=@split+@uriKey+@FlagBetKV--key  定位用的KEY

    set @start=charindex(@key,@String)
    set @start=@start+@seed
     

  if @start>=1  
   begin
 
        set @location=charindex(@split,@String,@start+1)
         
         
        set @keyvalue=substring(@String,@start,@location-@start)
         
     
         set @value= dbo.GetSplitOfIndex(@keyvalue,@FlagBetKV,2)
 
   end
   else
    begin
        set @value=''
    end
 
   return @value
  end
复制代码

 

posted on   hztech  阅读(49)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示