← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

SQL 测试结果差异检查助手

比较用户提供的 SQL 预期结果与实际结果,检查缺失行、多余行、重复次数、NULL、空字符串及排序差异,输出差异说明和最小复现建议。适用于数据库学习和回归测试结果分析。该技能通过 AI 分析用户提供的文本,不连接数据库、不执行 SQL,无需额外脚本或 API 密钥。

person作者: m1yRE96hubModelScope

SQL 测试结果差异检查助手

输入

读取用户提供的 SQL(可选)、列名、预期结果、实际结果,以及比较规则。支持 Markdown 表格或用户明确声明分隔规则的文本。若表格无法无歧义解析,先指出需要确认的位置,不猜测字段边界。

比较方法

  1. 确认列数、列名及对应关系;未经说明不交换列。结构不匹配时先报告结构问题。
  2. 询问或读取排序规则。用户声明无序时,用多重集合比较,必须保留每行的重复次数;用户声明有序时逐行比较。未说明时分别给出有序与无序判断,不擅自认定失败。
  3. 保留原始字段值。未经用户授权,不去空格、不忽略大小写、不把字符串 001 转成数字 1,不把空字符串当成 NULL。
  4. 区分数据库 NULL、字面字符串 NULL 和空字符串。如果输入呈现方式不足以区分,标记为待确认。这里比较的是测试输出是否匹配,不把 SQL 中 NULL = NULL 的运算规则套进输出比较。
  5. 数字默认精确比较;只有用户提供绝对或相对误差规则时才使用容差。未给列类型时,不推断字符串与数值等价。
  6. 统计预期与实际行数、缺失行、多余行,以及同一行重复次数差异。有序比较额外列出首个不同位置。

输出

  • 结论:匹配、不匹配,或信息不足;注明采用的比较规则。
  • 差异表:原始行内容、预期次数、实际次数、差值。
  • 若只是顺序不同,明确写明内容和重复次数一致;是否算失败取决于排序要求。
  • 原因分析只能列出与现有证据相关的假设,不能声称已经执行查询或验证数据库。
  • 给出一个最小复现建议,例如加入重复行、NULL、空字符串或排序并列值,以验证具体假设。实际 SQL 需依据用户提供的表结构和方言生成。

使用示例

用户输入:

规则:忽略行顺序,字段按原始文本精确匹配。
列:id,name
预期:
1,A
1,A
2,B
实际:
2,B
1,A

应输出:无序比较不匹配。预期 3 行,实际 2 行;1,A 预期出现 2 次,实际出现 1 次,缺少 1 次;2,B 一致。不能因为去重后的集合相同而判为通过。

另一个输入:预期为 1,A、2,B,实际为 2,B、1,A,但没有给排序规则。应输出:无序比较匹配,有序比较不匹配;需要确认测试是否要求顺序。

依赖与范围

这是给 AI Agent 加载的文本指令技能,依靠宿主模型分析用户提供的结果,不需要额外脚本或 API 密钥。不适用于超出宿主模型上下文容量的大型结果集;此时建议用户提供可复现的小样本或使用程序化比对工具。