我有以下代码。 我需要做的是当我从数据库中获取记录时,我只需要我的下一个程序的顶级记录。 我尝试过使用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
答案 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
找到更多信息