假设我有一个表MyTable,其中包含DriverNum、DriverName、Comment、DateComment、AccNum列,并且MyTable有3条记录,DriverNum值分别为1、2、2。
数据库为IBMDB 2。
我可以用下面的SQL查询得到DriverNum值为1和2的唯一结果。(1)
SELECT DISTINCT DriverNum
FROM MyTable
WHERE AccNum = '12345' AND DateComment = 'SomeDate'
当我尝试将下面的SQL查询(2)应用于(1)的查询结果时,它应该按DateComment时间戳排序,但我不知道如何执行JOIN SQL
select *
from MyTable
WHERE AccNum = '12345' AND DriverNum =?
ORDER BY DateComment DESC
FETCH FIRST ROW ONLY
或者,我可以从(1)中运行query_result_1的java代码,并从(2)中应用sql查询,得到如下结果。
对于(整数lDrvNum:query_result_1){从我的表中选择 *,其中帐户编号= '12345'且驱动程序编号= lDrvNum按日期排序注解说明仅获取第一行}
我想知道我是否可以将(1)和(2)中的查询合并成一个查询来实现我的黄金?请帮助我,因为我被困在这个问题上了。
谢谢你的帮助,对不起,我不擅长SQL语言。肯尼
1条答案
按热度按时间4zcjmb1e1#
您可以使用
ROW_NUMBER()
函数,根据特定顺序从每个子群组取得第一列。例如: