1. CREATE FUNCTION dbo.UrlDecode(@url varchar(3072))
  2. RETURNS varchar(3072)
  3. AS
  4. BEGIN
  5. DECLARE @count int, @c char(1), @cenc char(2), @i int, @urlReturn varchar(3072)
  6. SET @count = Len(@url)
  7. SET @i = 1
  8. SET @urlReturn = ''
  9. WHILE (@i <= @count)
  10. BEGIN
  11. SET @c = substring(@url, @i, 1)
  12. IF @c LIKE '[!%]' ESCAPE '!'
  13. BEGIN
  14. SET @cenc = substring(@url, @i + 1, 2)
  15. SET @c = CHAR(CASE WHEN SUBSTRING(@cenc, 1, 1) LIKE '[0-9]'
  16. THEN CAST(SUBSTRING(@cenc, 1, 1) as int)
  17. ELSE CAST(ASCII(UPPER(SUBSTRING(@cenc, 1, 1)))-55 as int)
  18. END * 16 +
  19. CASE WHEN SUBSTRING(@cenc, 2, 1) LIKE '[0-9]'
  20. THEN CAST(SUBSTRING(@cenc, 2, 1) as int)
  21. ELSE CAST(ASCII(UPPER(SUBSTRING(@cenc, 2, 1)))-55 as int)
  22. END)
  23. SET @urlReturn = @urlReturn + @c
  24. SET @i = @i + 2
  25. END
  26. ELSE
  27. BEGIN
  28. SET @urlReturn = @urlReturn + @c
  29. END
  30. SET @i = @i +1
  31. END
  32. RETURN @urlReturn
  33. END
  1. CREATE FUNCTION dbo.fnDeURL
  2. (
  3. @URL VARCHAR(8000)
  4. )
  5. RETURNS VARCHAR(8000)
  6. AS
  7. BEGIN
  8. DECLARE @Position INT,
  9. @Base CHAR(16),
  10. @High TINYINT,
  11. @Low TINYINT,
  12. @Pattern CHAR(21)
  13.  
  14. SELECT @Base = '0123456789abcdef',
  15. @Pattern = '%[%][0-9a-f][0-9a-f]%',
  16. @URL = REPLACE(@URL, '+', ' '),
  17. @Position = PATINDEX(@Pattern, @URL)
  18.  
  19. WHILE @Position > 0
  20. SELECT @High = CHARINDEX(SUBSTRING(@URL, @Position + 1, 1), @Base COLLATE Latin1_General_CI_AS),
  21. @Low = CHARINDEX(SUBSTRING(@URL, @Position + 2, 1), @Base COLLATE Latin1_General_CI_AS),
  22. @URL = STUFF(@URL, @Position, 3, CHAR(16 * @High + @Low - 17)),
  23. @Position = PATINDEX(@Pattern, @URL)
  24.  
  25. RETURN @URL
  26. END

SQL Server Url Decode函数的更多相关文章

  1. sql server中常用方法函数

    SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...

  2. SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  3. SQL Server:字符串函数

    以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...

  4. SQL Server 分隔字符串函数实现

    在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...

  5. SQL Server数据库ROW_NUMBER()函数使用详解

    SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...

  6. SQL Server UDF用户自定义函数

    UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用.UDF和存储过程的主要区别在于返回结果的方式. 使用UDF时可传入参数, ...

  7. SQL Server数据库PIVOT函数的使用详解(一)

    http://database.51cto.com/art/201108/285250.htm SQL Server数据库中,PIVOT在帮助中这样描述滴:可以使用 PIVOT 和UNPIVOT 关系 ...

  8. 10、SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  9. SQL Server 2005 MD5函数

    原文:SQL Server 2005 MD5函数 在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的M ...

随机推荐

  1. elasticsearch 聚合函数 max double精度损失bug

    测试样例数据{ "size" : 0, "query" : { "bool" : { "must" : { " ...

  2. spring4与mongodb的集成

    新项目的辅助系统,需要用到mongo系统,今天再次将其使用环境进行了操作搭建.还是遇到一些问题,毕竟之前使用的场景和现在的不同.版本也不一样了. 本次使用的环境: mongo:3.4.4版本 OS: ...

  3. WIN10 网速问题,边下载 边逛论坛 电脑 有点卡

    引用:https://www.chiphell.com/forum.php?mod=viewthread&tid=1961836&extra=page%3D1&mobile=2 ...

  4. Configure Virtual Serial Port Driver (vspd)注册表

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSBC7\Ports\COM3COM4] “Port1”=”COM3” “Port2”=” ...

  5. php 测试 程序执行时间,内存使用情况

    memory_get_usage 可以分析内存占用空间. microtime 函数就可以分析程序执行时间. 上栗子: echo '开始内存:'.memory_get_usage(), ''; $tmp ...

  6. windows下python2和python3同时安装ipython

    1.ipython简介: IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许 ...

  7. Hive学习笔记一

    1. Load的使用 //在1.x版本中定义long数据类型会报错(用bigint代替) create table t_load_stu(name string,age bigint) row for ...

  8. Android 使用自定义字体

    整个项目要使用第三方字体首先将字体文件放到assets文件夹下 因为整个项目要用第三方字体这里我重写了 TextView Button EditText 三个控件 以TextView 为例代码如下   ...

  9. 第一天课程:第一个python程序print say hello

    print("Hello World") linux下要加可执行权限 chmod 755 hello.py 权限755,7=4+2+1,4是读,2是写,1是执行,第一个7代表用户, ...

  10. dubbo协议下的单一长连接与多线程并发如何协同工作

    上班的路上突然就冒出了这么个问题:既然在dubbo中描述消费者和提供者之间采用的是单一长连接,那么如果消费者端是高并发多线程模型的web应用,单一长连接如何解决多线程并发请求问题呢? 其实如果不太了解 ...