在DataGrip中如何通过Excel的STUDENTID批量查询TABLE1数据?
在DataGrip中用Excel的STUDENTID批量查询TABLE1的方法
不用非得把2000个STUDENTID挨个写到SQL语句里,DataGrip提供了几种更高效的实现方式:
方法1:导入Excel数据到临时表查询
这种方式适合需要重复使用或Excel数据更新频率中等的场景:
- 先在数据库里新建一张临时表(例如
TEMP_STUDENTS),只保留STUDENTID列即可 - 右键临时表,选择「Import Data」,按照向导提示选择你的Excel文件,完成数据导入
- 之后用以下SQL查询:
-- 关联查询(性能更优) SELECT t.* FROM TABLE1 t JOIN TEMP_STUDENTS ts ON t.STUDENTID = ts.STUDENTID; -- IN子查询写法 SELECT * FROM TABLE1 WHERE STUDENTID IN (SELECT STUDENTID FROM TEMP_STUDENTS);
如果Excel中的ID有更新,重新导入一次临时表数据即可。
方法2:直接连接Excel作为数据源跨表查询
适合Excel数据频繁变动的场景,无需导入数据,实时读取Excel内容:
- 点击DataGrip左侧「Database」面板的「+」按钮,选择「Data Source」→「Excel」
- 按照向导选择目标Excel文件,完成数据源配置
- 直接编写跨数据源查询SQL(Excel工作表名需加
$后缀,例如工作表名为Sheet1则用[Sheet1$]):
SELECT * FROM TABLE1 t WHERE t.STUDENTID IN (SELECT STUDENTID FROM [Sheet1$]);
Excel数据更新后,刷新Excel数据源就能直接用最新数据查询。
方法3:临时快速查询(适合单次使用)
如果只是临时查一次,可快速处理Excel数据后用变量占位:
- 复制Excel中所有STUDENTID值,用文本编辑器把每行ID替换为
'ID值',格式,删除末尾多余的逗号 - 在DataGrip中编写带变量的SQL:
SELECT * FROM TABLE1 WHERE STUDENTID IN (${student_ids});
运行查询时,在弹出的变量输入框中粘贴处理好的ID字符串即可。
内容的提问来源于stack exchange,提问作者bvowe
相关产品推荐
相关产品推荐

