温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何过滤结果集中的脏数据

发布时间:2026-09-10 12:25:31 来源:亿速云 阅读:96 作者:小樊 栏目:数据库

“过滤结果集中的脏数据”在不同场景下做法不同,下面按常见场景给你一套实用思路。


一、先明确:什么是“脏数据”

通常包括:

  • 空值 / NULL / 空字符串
  • 重复数据
  • 格式错误(手机号、邮箱、日期)
  • 超出合理范围(负数、异常大值)
  • 业务非法值(已删除、测试数据)

二、SQL 查询中过滤(最常用)

1. 过滤空值

SELECT *
FROM user
WHERE name IS NOT NULL
  AND name <> '';

2. 去重

SELECT DISTINCT user_id
FROM orders;

3. 范围 / 格式校验

SELECT *
FROM user
WHERE age BETWEEN 0 AND 120
  AND phone REGEXP '^1[3-9][0-9]{9}$';

4. 排除测试/非法数据

SELECT *
FROM order
WHERE is_test = 0
  AND status != 'DELETED';

三、代码层过滤(Java / Python 示例)

Java(Stream)

List<User> clean = users.stream()
    .filter(u -> u.getName() != null && !u.getName().isEmpty())
    .filter(u -> u.getAge() != null && u.getAge() >= 0)
    .collect(Collectors.toList());

Python

clean = [
    u for u in users
    if u.get("name") and 0 <= u.get("age", -1) <= 120
]

四、数据清洗流程(推荐)

  1. 入口过滤:查询时加条件
  2. 中间清洗:代码层校验
  3. 出口兜底:返回前统一清洗
  4. 日志留痕:记录被过滤的脏数据

五、进阶做法

  • 使用 校验框架(Bean Validation、Pydantic)
  • 建立 数据质量规则表
  • ETL 中使用 清洗节点(如 Spark / Kafka Stream)

如果你能说明:

  • 使用的语言 / 数据库
  • 脏数据的具体类型

我可以直接给你针对性代码

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI