• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > T-SQL中使用正则表达式函数

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

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了T-SQL,正则表达等相关知识,希望本文的分享对您有所帮助

有想过在T-Sql使用正则表达式吗?是的,完全可以的,我们可以用SQL SERVER CLR sql function来实现这一功能。

首先,我们在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感兴趣:
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL语句(T-SQL汇总) 用T-SQL画出这些图形
  • SqlServer 2005 T-SQL Query 学习笔记(4)
  • SqlServer 2005 T-SQL Query 学习笔记(3)
  • SqlServer 2005 T-SQL Query 学习笔记(2)
  • SqlServer 2005 T-SQL Query 学习笔记(1)
  • SQLServer 2008 新增T-SQL 简写语法
  • 通过T-SQL语句实现数据库备份与还原的代码
  • T-SQL中使用正则表达式函数
  • SQL Server中的T-SQL的基本对象
  • 一些 T-SQL 技巧

相关文章

  • 2018-12-05【MySQL数据库】第三章解读:服务器性能剖析 (下)
  • 2018-12-05mysql 导出select语句结果到excel文件遇到问题及解决方法_MySQL
  • 2017-05-11MySQL Innodb表导致死锁日志情况分析与归纳
  • 2017-05-11通过mysql-proxy完成mysql读写分离
  • 2018-12-05用sql脚本创建sqlserver数据库范例语句
  • 2018-12-05有关朦胧图片效果的文章推荐7篇
  • 2018-12-05Access转Sql Server问题 实例说明
  • 2018-12-05SQL Server 2008数据库迁移
  • 2018-12-05MySQL之——忘记Root密码如何操作
  • 2018-12-05有关mysql优化的一些东东整理

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • JDBC--数据库管理系统
    • SQL 判断字段类型语句
    • mysql表里的重复数据查询方法详细介绍(图)
    • MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍
    • 详细介绍解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)
    • MYSQL基础之连接MYSQL、修改密码、添加用户
    • ORACLE 通过SPM为SQL语句加HINT
    • MYSQL 修改root密码命令小结
    • mysql数据库从服务器移植到个人PC的方法
    • SQL Server 不删除信息重新恢复自动编号列的序号的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有