SQL执行数据质量检查

时间:2014-07-11 09:33:37

标签: sql sql-server

我尝试进行一些质量检查,以确保我已在MS SQL中正确导入数据

如何检查列只包含有效日期而不包含文本或数字?我如何检查列是否包含一定数量的字符?任何指导都将非常感谢。

2 个答案:

答案 0 :(得分:2)

特定任务可以通过两种方式实现。

1)将列类型设置为' date'在插入数据之前键入。 (如果数据格式不正确,插入任务将抛出异常)

2)如果日期已经存储在以VARCHAR格式存储的表中,您可以使用查询列出不是正确日期格式的条目

SELECT Col_Name FROM Tbl_Name WHERE isDate(Col_Name)<>1

当列中的字符长度小于特定值时,以下查询将帮助您列出表中的所有行

SELECT * FROM Tbl_Name Where len(Col_name)<@MaxLength

答案 1 :(得分:1)

您需要为表格中的列选择正确的data types。所有数据验证必须是ETL的一部分:

典型的实际ETL循环包括以下执行步骤:

  • 周期启动
  • 构建参考数据
  • 提取(来自来源)
  • 验证
  • 转换(清理,应用业务规则,检查数据完整性, 创建聚合或分解)
  • 阶段(加载到临时表中, 如果使用的话)
  • 审核报告(例如,遵守业务规则。如果失败,有助于诊断/修复)
  • 发布(到目标表)
  • 档案
  • 清理

因此,所有数据验证和转换必须在验证和转换阶段以及加载数据之前完成。