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

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

在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数据库也是可以,一般情况下,只会按需求安装在指定的数据库中即可,先进行数据库选定。


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


定位正则函数安装数据库

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


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


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

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

第39波-DotNet版的正则处理函数 https://www.jianshu.com/p/9450c6610f1f


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


部署成功的正则函数位置

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


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


正则函数调用方法

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

结语

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

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

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

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

相关阅读

「Sqlserver」数据分析师有理由爱Sqlserver之一-好用的插件工具推荐https://www.jianshu.com/p/637aba4aeee5

「Sqlserver」数据分析师有理由爱Sqlserver之二-像使用Excel一般地使用Sqlserver https://www.jianshu.com/p/b40f8a36055e

「Sqlserver」数据分析师有理由爱Sqlserver之三-最值得使有低投入高产出的Sqlsever https://www.jianshu.com/p/8a5396a7a402

「Sqlserver」数据分析师有理由爱Sqlserver之四-七大数据库产品测评Sqlserver完胜 https://www.jianshu.com/p/243115b797ff

展开阅读全文

页面更新:2024-04-23

标签:环境   数据库   数据   正则   数据源   催化剂   字符串   函数   笔者   能力   版本   功能   文件   程序   教程   数码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top