4
以下兩個SQL語句中的哪一個將返回所需的結果集(即Status = 0且StartTime最高的十個行)?在oracle SQL語句中使用rownum並結合order by子句
這兩個語句是否總是返回相同的結果集(StartTime是唯一的)?
SELECT *
FROM MyTable
WHERE Status=0
AND ROWNUM <= 10
ORDER BY StartTime DESC
SELECT *
FROM (
SELECT *
FROM MyTable
WHERE Status=0
ORDER BY StartTime DESC
)
WHERE ROWNUM <= 10
背景
我DBAdmin跟我說的第一個語句將第一限制表10行,不是爲了通過開始時間,這是definitly不是我想要的那些隨意行。 根據我在that answer中所瞭解到的,第二個語句的order by子句是多餘的,可以通過優化器刪除,這也不是我想要的。
我問一個similar question在查詢中limit
條款concering到SQLite數據庫和我有興趣瞭解上述聲明的任何差異(使用limit
Vs的rownum
)與Oracle數據庫使用。
第一個查詢甚至沒有解析。你可能想編輯你的問題。 – Phil
第二個將需要一個別名。 –
對不起。我對我們的數據庫進行了修正和驗證。第二個陳述應該在語法上是正確的。 – nabulke