当前位置:  数据库>sqlserver

T-SQL中使用正则表达式函数

    来源: 互联网  发布时间:2014-09-05

    本文导语:  首先,我们在VSTS中创建一Database Project,增一个class, 实现下面的一个方法: 代码如下: /// /// Regs the ex match. /// /// The input value. /// The regex pattern. /// Author: Petter Liu http://wintersun.cnblogs.com /// 1 match,0 not match [SqlFunction] public static bo...

首先,我们在VSTS中创建一Database Project,增一个class, 实现下面的一个方法:
代码如下:

///
/// Regs the ex match.
///
/// The input value.
/// The regex pattern.
/// Author: Petter Liu http://wintersun.cnblogs.com
/// 1 match,0 not match
[SqlFunction]
public static bool RegExMatch(string inputValue, string regexPattern)
{
// Any nulls - we can't match, return false
if (string.IsNullOrEmpty(inputValue) || string.IsNullOrEmpty(regexPattern))
return false;

Regex r1 = new Regex(regexPattern.TrimEnd(null));
return r1.Match(inputValue.TrimEnd(null)).Success;
}

好了,Build后Deploy到你的Target database就OK了,VisualStudio会自动注册这个程序集的。如果,你想手动注册程序集,可执行以下的T-SQL:
代码如下:

CREATE ASSEMBLY [RegExCLR] FROM 'RegExCLR.dll';

-- Add the REGEX function. We want a friendly name
-- RegExMatch rather than the full namespace name.
-- Note the way we have to specify the Assembly.Namespace.Class.Function
-- NOTE the RegExCLR.RegExCLR
-- (one is the assembly the other is the namespace)
CREATE FUNCTION RegExMatch ( @inputCalue NVARCHAR(4000),
@regexPattern NVARCHAR(4000) ) RETURNS BIT
AS EXTERNAL NAME RegExCLR.RegExCLR.ClrClass.RegExMatch;

OK, 一切OK的后,我们来测试下:

select COUNT(1) from Threads where dbo.RegExMatch(ThreadId,'^[{|(]?[0-9a-fA-F]{8}[-]?([0-9a-fA-F]{4}[-]?){3}[0-9a-fA-F]{12}[)|}]?$')=1
上面的T-SQL是找出Threads表ThreadId是GUID的记录数。 等于1是匹配,^[{|(]?[0-9a-fA-F]{8}[-]?([0-9a-fA-F]{4}[-]?){3}[0-9a-fA-F]{12}[)|}]?$ 匹配GUID的正则表达式。

完了,希望这篇POST对您有帮助。

您可能对以下POST感兴趣:

SQLSERVER2008中CTE的Split与CLR的性能比较

SQLSERVER使用CLR Stored Procedure导出数据到Excel

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • T-SQL常用的聚合函数
  • T-SQL实例 函数结果设置为列别名
  • T-SQL常用的数学函数
  • T-SQL 实现一个简单的 Split 函数
  • T-SQL常用的元数据函数
  • T-SQL判断一个日期是否为今天的函数
  • T-SQL常用的时间和日期函数
  • T-SQL实现的一个Split函数
  • T-SQL常用游标函数实例学习
  • T-SQL常用的系统函数
  • T-SQL自定义函数返回前一天或后一天日期的例子
  • T-SQL常用的字符串函数
  • T-SQL学习之二 自定义函数和控制流语句
  • 备份数据库的T-SQL语句
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 使用T-SQL语句创建、修改、删除数据库
  • T-SQL语句创建数据库的例子(图文)
  • t-sql清空表数据的两种方式示例(truncate and delete)
  • 学习T-SQL中default值的使用
  • T-SQL学习之一 T-SQL基础
  • 用t-sql语句完整备份数据库的例子
  • 使用T-SQL的Split拆分字符串的方法
  • SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)
  • SQL Server中的T-SQL的基本对象
  • T-SQL 实现 Split 的方法
  • 如何在T-sql 中实现数组的功能
  • T-sql语句修改数据库逻辑名与数据库名等
  • 学习T-SQL中操作表的语句
  • T-SQL数据库约束学习笔记
  • T-SQL查询语句的执行顺序详解
  • T-SQL排序-重复数据的剔除保留及分页存储过程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3