需求:需要一份excel数据来做统计分析,包括A,B,C,D四列数据,并且这些数据分别来自不同的系统,已从其他系统导出两列数据A,B,现在,需要把后两列数据补齐,可通过B列的值,在我们的数据库来查询C,D的数据。数据量为1W多。
分析后得出C,D两列的数据,通过B,在本数据库中通过一个最简单的条件查询即可得到。
select t.C,t.D from table t where t.B in (B1,B2,B3……)
但是,这种方式操作受限,
限制一:oracle中in的个数不超过1000,1W数据,得操作10次;
限制二:如果直接从excel中复制数据,需要在每个单元格数据后面加上逗号才够方便。
于是,首先操作excel,批量在B列数据后面加个逗号,本以为,执行10条sql,把数据粘贴到excel中就可以了,若不是因为取了1000个B列的数据,而只查到900多数据,还真有可能就这样来处理这个需求了呢。
查到的数据不一一匹配,这下可怎么粘贴到excel中?要保证数据对应啊,麻烦事,还是得另想办法了。于是,出来了最简单的方法二:建个临时表tableTemp,导入数据,再用个多表查询,就OK了。
这个方式操作简单,没有技术难点,只要借助plsql把excel中的数据导入表,再用个left join 查询就可以得到最终的数据了。关键在于,是不是能够想到这种做事方法。