在测试过程中,我们有时候需要准备一些测试数据,若从系统中直接导出Excel数据,数据往往庞大且需要整合,不好整理,于是我们直接去数据库中查询一些表,数据整合后直接导出结果会更方便。
我们今天就 用 chatgpt 帮我们构造sql语句,快速从库中导出想要数据,我们正式库中有上万条的数据,我们先在测试库中测试一下sql语句,再去正式库中查询:
首先分析我们需要的数据和表结构:
1、得到第一张表 bd_position ,分析表字段后,我们发现有用的是 code,name,org_id,dept_id,job_id,jobgrade_id 几个字段的值;
2、但是这张表里面只有org_id,没有org对应的code,name(dept_id,job_id,jobgrade_id亦如是);
3、于是我们又找到 org_admin,bd_duty,bd_rank ,从这几个表里获取对应的code,name;
然后我们去 chatgpt 里面,让 chatgpt 帮我们写一下需要的sql语句,用这个sql语句去汇总我们最后想要的数据:
1、我们告诉 chatgpt :
select code,name,org_id,dept_id,job_id,jobgrade_id from bd_position 这是一个基本查询,其中的org_id,dept_id,job_id,jobgrade_id分别对应另外的表org_admin,org_admin,bd_duty,bd_rank中的id,根据ID的对应关系从org_admin,org_admin,bd_duty,bd_rank中获取对应的code和name展示到第一个语句结果中
于是得到:
运行这个sql,返回如下数据,我们发现同一个组织(org)有不止一条数据,但是我们只需要获取到一条数据即可;
2、我们告诉 chatgpt :
这个结果中org.code有很多重复数据,希望从每一组重复数据中随机选择1条数据展示即可
于是得到:
运行这个sql,发现报错了;
3、我们把报错告诉 chatgpt :
FUNCTION iuap_apdoc_basedoc.NEWID does not exist
chatgpt 告诉我们:NEWID()
函数通常用于Microsoft SQL Server数据库来生成一个新的唯一标识符,但在其他数据库系统中可能没有这个函数。并询问了我使用的是哪种数据库?然后得到:
此时执行sql后,我们基本得到了想要的数据;
4、然后发现id我们也想要显示,于是得到:
此时执行sql后,我们得到数据如下,数据已经是我们想要的样子,直接导出这个结果即可;
然后我们可以用这个sql语句,去正式库中查询数据,得到我们想要的结果。