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

发布时间 2023-03-31 10:42:58作者: hztech

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