我有以下代碼。 我需要做的是當我從數據庫中獲取記錄時,我只需要我的下一個過程的最高記錄。 我曾嘗試使用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
我有以下代碼。 我需要做的是當我從數據庫中獲取記錄時,我只需要我的下一個過程的最高記錄。 我曾嘗試使用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
SQL Server 2012中使用 「OFFSET 1個ROWS FETCH NEXT 1行僅對」。不知道這是否會幫助,但值得一試!
我目前使用2個數據庫。這種方法只適用於一種 – prajakta
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
沒有的某種抽象級別的更多信息,你就把自己一個幾乎不可能完成的任務。我懷疑你的當前查詢在任何RDBMS中都是有效的! – Strawberry
RDBMS口味之間有許多不同之處,它們都是由不同製造商以不同議程開發的不同步驟。編寫適用於所有RDBMS的通用SQL代碼幾乎是不可能的。 –