从所有数据库的查询结果中获取最高记录

时间:2017-09-04 06:56:42

标签: mysql postgresql

我有以下代码。 我需要做的是当我从数据库中获取记录时,我只需要我的下一个程序的顶级记录。 我尝试过使用LIMIT,TOP等,但这与所有数据库都不兼容。 在这种情况下的任何帮助表示赞赏。 以下是查询

SELECT a,b,c,d,COUNT(*) AS cnt_next
FROM table
WHERE emp_cd='ASDF1234' and a < '01/08/2017'
GROUP BY a,b,c,d
ORDER BY b
DESC 

2 个答案:

答案 0 :(得分:0)

在sql server 2012中,您使用“OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY”。不确定这是否有帮助但值得一试!

答案 1 :(得分:0)

RDBMS之间存在许多差异,因此一个查询与所有数据库兼容是不可能的。 如果您正在使用Mysql和Postgresql,则此查询可以在这两个RDBMS上运行。

SELECT *
FROM
(SELECT a,b,c,d,COUNT(*) AS cnt_next
FROM table
WHERE emp_cd='ASDF1234' and a < '01/08/2017'
GROUP BY a,b,c,d
ORDER BY b DESC) data
LIMIT 1

对于其他RDBMS,您可以在此link

找到更多信息