在为以下功能编写 sql 查询时,我面临一个特殊的问题:考虑下表:
---------------------------------
AccountNumber JobNumber
---------------------------------
1234 1111113
1234 1111112
1234 1111111
1212 1111131
1212 1111132
我想获取传递给查询的帐号的最新工作编号。例如:如果我通过 1234 作为帐号,我需要得到 1111113,如果我通过 1212,我应该得到 1111131。如何编写 PL/SQL 查询来实现这一点?我们将传递多个帐号,例如AccountNumber IN ('1234','1212')
. 因此,对于每个帐号,我需要获取最新的工作编号。
目前我已经尝试过不使用 IN 这样的:
SELECT *
FROM (SELECT JobNumber
FROM TABLE1
WHERE AccountNumber = ?)
WHERE ROWNUM = 1
在 Java JDBC 中,我正在遍历帐号 ArrayList 并针对 Oracle db 执行 JDBC。但如您所知,如果有 4000 个帐户性能命中,这不是一个可行的解决方案。
你能帮忙写这个 SQL 查询吗?
编辑:这里最新的意思是最高的工作编号,例如:在 1111113 和 1111112 中。1111113 是最新数据