Go back to the English version of the documentation数据质量规则的样本 SQL 语句
数据质量规则的样本 SQL 语句
Last updated: 2024年10月07日
这些样本演示如何设置 SQL 规则。
您可以将提供的 SQL 语句复制到自己的数据质量规则中,并根据需要进行调整。
地址不存在
返回不存在地址的所有记录的客户机标识和名称 (空值检查)。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where ADDRESS is null or length(trim(ADDRESS))=0
引用列表中缺少或未包含地址类型
返回地址类型不存在 (空值检查) 或不在引用列表中的所有记录的客户机标识和名称。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where ADDRESSTYPE is null or length(trim(ADDRESSTYPE))=0 or rtrim(ADDRESSTYPE) not in ('S','R','B','L','G','U','O')
年龄超出范围
返回派生年龄小于 AGE 值或超过 125 的所有记录的客户机标识和名称。 派生的年龄计算为当前出生日期和出生日期之间的差值的绝对值。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where abs(DAYS(CURRENT DATE) - DAYS(DATEOFBIRTH))/365 < AGE OR abs(DAYS(CURRENT DATE) - DAYS(DATEOFBIRTH))/365 > 125
子女婚姻状况不正确
返回所有记录的客户标识和名称,其中人员是儿童 (派生年龄低于 18 岁) ,并且婚姻状况不是 "否"。 派生的年龄计算为当前出生日期和出生日期之间的差值的绝对值。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where abs(DAYS(CURRENT DATE) - DAYS(DATEOFBIRTH))/365 < 18 AND MARITAL_STATUS <> 'N'
信用卡卡号与格式不匹配
返回信用卡号与指定格式不匹配的所有记录的客户机标识和名称。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where NOT regexp_like(CREDIT_CARD, '^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|6(?:22|4[4-9])[0-9]{13}|65[0-9]{14}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$')
SSN 与格式不匹配
返回社会保险号 (SSN) 与指定格式不匹配的所有记录的客户标识和名称。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where NOT regexp_like(SSN, '^[0-9]{3}-[0-9]{2}-[0-9]{4}$')
子串与引用列表中的条目不匹配
返回所有记录的客户机标识和名称,其中从位置 3 开始的长度为 3 的文本值的子串不在提供的引用列表中。
select CLIENT_ID, NAME from SCHEMA.CUSTOMERS where substring(TEXTFIELD, 3, 3) not in ('AAA','AAB','BAA','CCC')
父主题: 创建基于 SQL 的数据质量规则