龙空技术网

数据分析师有理由爱Sqlserver之五-数据库环境使用正则表达式

用户87517476454 192

前言:

目前看官们对“oracle的正则表达式语法”可能比较注意,小伙伴们都需要学习一些“oracle的正则表达式语法”的相关内容。那么小编同时在网摘上网罗了一些关于“oracle的正则表达式语法””的相关知识,希望姐妹们能喜欢,姐妹们快快来了解一下吧!

在数据分析师群体中,使用正则表达式清洗数据源是一个非常刚需的需求,谁也不能期望自己拿到手的数据源是多么干净整齐的,特别是在网络世界中抓取回来的数据。字符串的处理能力再强,没有正则表达式,许多场景也是无能为力。

在Excel催化剂插件上,让Excel用户可以在Excel环境上使用正则表达式,在Sqlserver数据库环境下,更能使用,性能更佳,此篇带大家进入数据库存的正则表达式。

背景介绍

关于正则表达式如何使用,网上上也是铺天盖地的学习资料,这里不作展开分享。

对于数据分析师来说,正则表达式的掌握,是一项投入产出比非常高的技能,陪伴一生都能使用上。

在数据库级别,可以使用正则表达式,目前据我有限知识范围可知,只有Oracle和MySQL提供原生性支持,但Sqlserver却一直都没有。

听到这样的消息,貌似给自家所爱的Sqlserver泼了冷水一般,但Sqlsever提供了CLR程序集的扩展支持,正则表达式在.NET环境下,也是完美地支持。将.NET的能力迁移到Sqlserver上,就如Excel催化剂将.NET的能力嫁接到Excel上一般,无限地扩展,只差想象力罢了。

上述提及Oracle、MySQL已经支持正则表达式了,但支持不代表全部支持,就如国产的金蝶、用友也叫ERP软件,但和人家SAP比起来,差个十万八千里,数据分析师是以数据说话,就Oracle、MySQL所支持的能力,还不如我一个三流开发都写几句.NET程序封装出来的正则表达式强,特别是MySQL,更是弱鸡得不行,只支持一个类似RegexMatch的逻辑匹配功能。

安装Sqlserver的正则表达式程序集扩展

对大部分数据分析师而言,他们只需要使用工具,至于开发过程、原理,估计没几个人有兴趣,当然有兴趣者,网络上也是大量的学习资料,也可以自行学习,此处就提供一个简单的安装教程,直接一分钟完事,立马使用上。

因Sqlserver正则表达式的封装和Excel催化剂的正则表达式封装原代码一模一样(bug和性能也一样,若有更佳的,欢迎也提供一起交流,Excel催化剂正则函数已经开源了),故具体的正则函数的学习教程,建议翻阅Excel催化剂的推文。

安装过程

总共两个sql脚本文件,区别于网络上的复杂安装教程,笔者提供了原dll文件安装以外的直接二进制文件写入sql脚本中的方式,对于服务器上的安装更加方便(无需复制dll到目标服务器等操作)。

双击sql文件后,默认会以SSMS打开,在Sqlserver上,可以将自定义函数安装在不同的数据库中,甚至安装在master数据库也是可以,一般情况下,只会按需求安装在指定的数据库中即可,先进行数据库选定。

定位正则函数安装数据库

在版本如Sqlserver2017上,需要额外增加这个clr strict security开关的开启,如果低版本执行时,可能会报错,但不影响安装(微软为了安全性也是不断地迭代产品,这个开关,对于安装外来dll程序集是一种保护,让数据库更安全)。

直接F5或点击执行按钮执行即可

最后可以在可编程性标量值函数这里找到部署成功的正则函数,使用时和普通函数的使用无异,按要求传入其参数即可,参数具体的定义参照Excel催化剂自定义函数的介绍。

第39波-DotNet版的正则处理函数

部署成功的正则函数位置

最终的调用效果,传入了包含ch字母的匹配条件,即可计算出匹配的结果,1为真,0为假。

正则函数调用方法

上述提及的两个sql文件,可私信笔者免费获取。

结语

通过CLR程序集功能的扩展,让Sqlserver手上.NET的翅膀,可以无限地扩展Sqlserver的能力范畴,特别是对数据分析师十分刚需的正则表达式功能,简单几步,即可实现完美的.NET版本的正则表达式,远远甩开MySQL的正则能力,对比Oracle原生的正则也不输,这就是Sqlserver的魅力。

在写好的SQL查询包含正则表达式的字符串清理,可以下放到一般的普通用户去消费,无需任务代码级的开发和数据驱动的安装,用Sqlserver做数据分发就是这么爽。

CLR函数扩展另还有一个非常刚需的函数为字符串聚合函数,将在下一篇中给予介绍,敬请关注。

笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。

相关阅读

「Sqlserver」数据分析师有理由爱Sqlserver之一-好用的插件工具推荐

「Sqlserver」数据分析师有理由爱Sqlserver之二-像使用Excel一般地使用Sqlserver

「Sqlserver」数据分析师有理由爱Sqlserver之三-最值得使有低投入高产出的Sqlsever

「Sqlserver」数据分析师有理由爱Sqlserver之四-七大数据库产品测评Sqlserver完胜

标签: #oracle的正则表达式语法 #oracle正则提取指定内容 #oracle正则表达式截取字符串 #sql数据库正则表达式查询 #sql的正则表达式查询