`

MS SQL Server 字符串截取

阅读更多
公司日志系统变态,用户操作url记录在数据库中,我需要从一条信息中找到参数pid的值,而pid参数后面是否有参数未知,无奈只好自己写个函数处理。
数据库是M$的 SQL 2005
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个字符应该足够用了。
2
1
分享到:
评论

相关推荐

    sql server提取日期的部分

    总之,`DATEPART`和`DATENAME`函数在SQL Server中提供了强大的日期和时间处理能力,它们能够帮助你轻松地从日期字段中提取出所需的年、月、日、周、时、分、秒等信息,并以整数或字符串的形式呈现。在处理日期相关的...

    SQL根据指定分隔符分解字符串实现步骤

    MS SQL Server 提供了一种方法来实现这一功能,虽然它没有内置的函数直接处理字符串分解,但我们可以创建自定义函数来达到这个目的。本文将介绍如何在MS SQL Server中根据给定的分隔符分解字符串。 首先,我们创建...

    MS SQL Server获取十二个月份的英文缩写

    最后,它返回这个缩写的字符串。 使用这个函数,你可以轻松地获取任何日期对应的月份缩写。例如,要获取当前月份的缩写,可以这样调用: ```sql SELECT [dbo].[udf_MonthShortName](GETDATE()) ``` 这将返回当前...

    sqlservice2005.一些MS_SQL上的小知识。随便看看

    4. **字符串截取与插入**:`LEFT`和`RIGHT`函数用于从字符串左侧或右侧截取固定长度的子串,`SUBSTRING`用于从任意位置开始截取。 ```sql SELECT LEFT('sqlserver', 3); SELECT SUBSTRING(au_fname, 1, 1) FROM ...

    SQL函数大全

    SQL作为一种标准的语言,在与各种数据库系统如MS Access、DB2、Informix、MS SQL Server、Oracle、MySQL、Sybase等进行交互时扮演着核心角色。本文旨在深入探讨SQL中的字符串函数,这些函数在处理文本数据时非常有用...

    Sql Server基本函数

    - `right(char_expr,int_expr)`:返回字符串的右端int_expr个字符,常用于截取字符串的尾部。 - `upper(char_expr)` 和 `lower(char_expr)`:分别将字符串转换为大写和小写,适用于大小写不敏感的操作。 - `space...

    Oracle 11g SQL经典教程

    LPAD和RPAD用于在字符串的左侧或右侧填充字符至指定长度,LTRIM和RTRIM用于去除字符串左侧或右侧的特定字符,REPLACE用于替换字符串中的字符,SUBSTR用于截取字符串的一部分,TRANSLATE用于替换字符串中的字符集,...

    sql.21.days.pdf

    - INSTR、LENGTH、SUBSTR、TRANSLATE:字符串搜索和截取函数。 - TO_CHAR、TO_NUMBER:数据类型转换函数。 - GREATEST、LEAST:取最大值或最小值函数。 - USER:获取当前用户的标识。 4. 高级SQL概念 - WHERE...

    21日SQL自学通.pdf

    在SQL中处理文本数据也是很重要的一部分,文档中提到了字符串相关的函数,如CHR, CONCAT, INITCAP, UPPER, LOWER, LPAD, RPAD, LTRIM, RTRIM, REPLACE, SUBSTR, TRANSLATE, INSTR, LENGTH, TO_CHAR, TO_NUMBER等,...

    SQL格式化日期

    此函数允许用户将日期和时间值转换为特定的字符串格式,这在展示数据时尤其有用,因为可以确保日期和时间按照用户或应用程序所需的格式显示。下面将详细介绍`CONVERT`函数的使用方法及常见的日期格式代码。 #### ...

    21天学会SQL

    5. 模式匹配函数:INSTR和LENGTH用于在字符串中查找子串并获取长度,而REPLACE, SUBSTR, TRANSLATE则用于字符串的替换、截取和翻译。 6. 条件语句和逻辑运算:WHERE子句用于过滤数据,而AND, OR, NOT等逻辑运算符则...

    sql 2005 常用函数

    SQL 2005是微软推出的SQL Server 2005数据库管理系统中的一部分,它提供了丰富的函数库,方便用户在处理数据时进行各种操作。以下是一些常用的SQL 2005函数的详细说明: 1. **字符串函数** - `datalength(Char_...

    项目开发常见问题 pdf

    - 方法二:利用`CONVERT`函数转换为字符串形式,示例代码为:`CONVERT(varchar(12), inserttime, 102)`。这种方法返回的是字符串格式的日期,例如“2006.04.26”。 - **知识点2:截取DateTime字段的各个部分** - ...

    .NET入门

    这行代码先移除字符串两端的空白字符,找到最后一个`.`的位置,然后截取该位置之后的部分作为文件扩展名。 ### 数据网格操作 在ASP.NET中,`DataGrid`控件常用于显示和编辑数据表。例如,在事件处理中可以获取选中...

    asp制作中常用到的函数库集合第1/8页

    * 函数 ID:0001 [截字符串]:用于截取指定长度的字符串,常用于限制字符串的长度。 HTML 处理函数 * 函数 ID:0002 [过滤 HTML]:用于过滤 HTML 代码,防止恶意代码的注入。 文件和目录函数 * 函数 ID:0003 ...

    Visual C++编程技巧精选500例.pdf

    198 如何将CString中的字符串赋值给字符指针? 199 如何折行显示字符串? 200 如何旋转显示字符串? 20l 如何显示星期月份字符串? 202 如何显示包括制表符的字符串? 203 如何使用BIG5显示一个字符串? 204 如何使字符串...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

Global site tag (gtag.js) - Google Analytics