质检规则-正则

目录

需求

实现

mysql

oracle

pg

hive

达梦


需求

 在数据质量检核中,经常会要求检查数据数据符合某些要求,比较某个字段是否是数字或者是否是日期等等,经常这种就用到数据库正则

实现

参数说明:

通用规则,${PARAM}换成合适的正则表达式,${TABLE}换成实际数据表,${COL}换成实际字段

mysql

校验手机号

select (b - a) as c0, b as c1,(case when b=0 then 0 else round((b-a)*1.0/b,2) end) as c2 from (( select count(1) as a from ${TABLE} where  ${COL}  regexp '^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))[0-9]{8}$' ) a, (select count(1) as b from ${TABLE}) b)

oracle

校验手机号

select (b - a) as c0, b as c1,(case when b=0 then 0 else round((b-a)*1.0/b,2) end) as c2 from ( select count(1) as a from ${TABLE} where regexp_like(${COL},'^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))[0-9]{8}$')) a, (select count(1) as b from ${TABLE}) b

pg

select sum(case when cast(${COL} as varchar)  ~${PARAM} then 0 else 1 end)  as c0,count(*) as c1  from ${TABLE} where ${COL} is not null

hive

通用规则,${PARAM}换成合适的正则表达式,${TABLE}换成实际数据表,${COL}换成实际字段

select sum(case when cast(${COL} as varchar) regexp ${PARAM} then 0 else 1 end)  as c0,count(*) as c1  from ${TABLE}

达梦

校验手机号

select nvl(b - a,0),nvl(a,0), nvl(b,0), decode(b,0,0,(b-a)*1.00/b) from ( select count(1) as a from ${TABLE} where REGEXP_LIKE(${COL}, '^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\d{8}$') ) a,( select count(1) as b from ${TABLE}) b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主流公链 - BCH BSV BTG

为什么出现分叉 BTC是自由的,BTC社区也是自由的,自然而然的会出现不同观点的群体 1. 比特币现金(Bitcoin Cash,BCH) 分叉日期: 2017年8月1日主要目的: 提高比特币的交易吞吐量和降低交易费用技术…

写作类AI推荐(一)

本章要介绍的写作AI如下: paperpal 特点: 面向科研人员的AI写作工具。可以选择自己的专业,如本科生/教授。 链接:Paperpal-专业AI论文润色与论文检测平台 笔灵 特点: 面向专业写作领域的AI写作工具。可以选择要写的文章…

人事管理系统|基于springboot人事管理系统的设计与实现(附项目源码+论文)

基于springboot人事管理系统的设计与实现 目录 基于springboot人事管理系统的设计与实现 一、摘要 二、相关技术 三、系统设计 3.1 整体功能结构图 3.2 功能具体细节设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取: 一、摘要 传统信息…

C# 异步与 Unity 协程(实例讲解)

C#异步编程实例&#xff1a; 假设我们有一个需要从Web获取数据的简单应用。我们可以使用C#的异步编程模型来避免UI线程被HTTP请求阻塞 1using System.Net.Http; 2using System.Threading.Tasks; 3 4public class AsyncExample 5{ 6 public async Task<string> Fetch…

【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)

使用介绍 1、【宝塔】删除ripro文件&#xff0c;上传最新ripro版本&#xff0c;然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖&#xff08;找到对应路径单个文件去覆盖&#xff09;。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺…

蓝桥杯---蜗牛【动态规划典型题目】

题目链接&#xff1a;蜗牛 import java.util.*;public class Main {public static void main(String[] args) {Scanner scannernew Scanner(System.in);int nscanner.nextInt();int[] xnew int[n1];for(int i1;i<n;i){x[i]scanner.nextInt();}int[] anew int[n1];int[] bnew…

npm卸载不掉的解决方案

不管怎么重装重启都报错 真服了&#xff0c;npm卸载不掉绝对是有缓存存在&#xff0c;用where npm查到d盘 实际上根本不在这个地方&#xff0c;这个是我安装的6.14.12版本的npm的地方&#xff0c;我说我怎么怎么重装怎么导包都不行呢&#xff0c;偷偷隐藏在这个目录里面&#…

【代码随想录算法训练营第三十九天 | LeetCode62.不同路径、63. 不同路径 II】

代码随想录算法训练营第三十九天 | LeetCode62.不同路径、63. 不同路径 II 一、62.不同路径 解题代码C&#xff1a; class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m, vector<int>(n, 0));for (int i 0; i < m; i) …

GRE_MGRE综合实验

目录 1、R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址。 IP配置 配置公网全网通 2、&#xff08;1&#xff09;R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方。 PAP认证 &#xff08;2&#xff09;R2与R5之间使用ppp的CHAP认证&am…

如何修改IDEA的代码样式配置+代码格式化快捷键配置

目录 问题现象&#xff1a; 问题分析&#xff1a; 温馨提示&#xff1a; 1、IDEA的代码样式配置 1.1、Use tab character - Smart tabs 配置&#xff1a; 1.2、Tab Size 配置&#xff1a; 1.3、Indent 配置&#xff1a; 1.4、Continuation Indent 配置 1.5、应用并保存 2、…

openstack 不能调度到某主机上分析

dashboard显示有足够资源创建虚拟机 创建一个1c2g20g配置的虚拟机&#xff0c;在过滤时把10-197-0-2这个主机过滤掉了&#xff0c;日志如下&#xff1a; 2024-03-25 17:52:14.087 26 DEBUG nova.scheduler.filters.disk_filter [req-8f2f32fb-1efe-4e5d-81fc-618210c7c76d 773…

【LeetCode: 面试题 16.05. 阶乘尾数 + 阶乘】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

俄罗斯深陷芯片自主困境,良率仅5成 |百能云芯

俄罗斯的芯片产业一直以来都面临着诸多挑战&#xff0c;尤其是在当前的国际形势下&#xff0c;这些挑战更加凸显。随着俄乌冲突的爆发&#xff0c;西方国家对俄罗斯实施了一系列经济制裁&#xff0c;导致俄罗斯科技产业受到了严重影响。据了解&#xff0c;俄国最大的本土芯片厂…

Redis的数据类型String使用场景实战

Redis的数据类型String使用场景实战 String模型的使用场景 常见面试题&#xff1a;redis在你们项目是怎么使用的&#xff1f;String类型说一个&#xff0c;还有其他用处没&#xff1f; 知识回顾 // 获取redis的key为 WATCH_KEEPER_PREFIX "wka" 的值String wka …

Ubuntu修改自启动软件或程序

Ubuntu修改自启动软件或程序 在编译程序的时候发现速度很慢&#xff0c;查找发现自启动选项太多&#xff0c;cpu占用率越来越高&#xff0c;现在进行查询并修改权限。 1、查找当前进程 top2、选择相对于的服务查找是否自启动设置 systemctl list-unit-files该指令用以下显示…

关于style/class的几种写法

一. style写法 1. <div :style"{ width: 13px, height: 13px, borderRadius: 50%, backgroundColor: this.dataObj.status red ? red : this.dataObj.status yellow ? yellow : this.dataObj.status green ? #1eab75 : }"></div> 2. <div :st…

[Java、Android面试]_14_Retrofit的作用

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…

二维数组中a[0] 和 a[0]的区别

在C语言中&#xff0c;二维数组是以连续内存块的形式存储的&#xff0c;其中每个元素都是数组。让我们来看看a[0]和&a[0]的区别&#xff1a; a[0]&#xff1a;这表示二维数组的第一个元素&#xff0c;也就是第一行的地址。在内存中&#xff0c;它代表的是第一行的起始地址。…

Qt使用事件过滤器

自己使用事件过滤器的总结 1、应用给事件管理器分发事件&#xff0c;事件管理器根据事件类别将事件发给对应的类。 2、事件过滤器在应用和事件管理器之间拦截事件派发给事件管理器的事件&#xff0c; 这个操作会给事件过滤器传递两个参数&#xff0c;一个是Object&#xff08;…

基于Arduino IDE 野火ESP8266模块 MQTT 的开发

一、库介绍 Arduino常用的MQTT库主要有PubSubClient。  PubSubClient库是一个广泛使用的MQTT客户端库&#xff0c;它基于MQTT 3.1.1版本&#xff0c;并且支持ESP8266和ESP32等Arduino兼容的硬件平台。PubSubClient库允许Arduino设备连接到MQTT服务器&#xff0c;发布和订阅MQT…