2011-09-09 44 views
2

我想知道如何限制SQL Server 2000中的記錄。在Oracle中,我已經編寫了一個像這樣的SQL查詢。在MS SQL服務器2000中限制ROWNUM的記錄

<cfquery name="myQuery" datasource="myDSN"> 
    SELECT * from tbl where rownum <= 10 
</cfquery> 

在SQL Server 2000中,我無法限制SQL查詢中的任何記錄。我知道我可以使用「MAXROWS」 CFQUERY,但我不想CF先抓取整個表,並限制它畢竟。

任何建議將不勝感激。

+0

這是用於MS SQL Server的嗎?我在你的問題的內容和標籤之間有點混淆。 – jadarnel27

+0

Yap,用於mssql server 2000.我在標題消息中提到過它。 – ppshein

+0

FYI CF9對於它支持的所有數據庫在ORM中具有強大的SQL級別的頁面支持,包括SQL Server – Henry

回答

4

SQL Server

SELECT TOP(10) * 
    FROM tbl 

對於MySQL(也PostgreSQLSQLite):

SELECT * 
FROM tbl 
LIMIT 10 
+0

值得注意的是,'TOP'與'rownum'或'LIMIT'並不完全等價。您可以使用它來獲取第一個X記錄,但不能使用任意範圍,即rowNum X到y。不幸的是,需要更復雜的查詢才能在MS SQL 2000中實現該查詢 – Leigh

1

在SQL Server中,你可以使用SET ROWCOUNT命令限制的行數返回

SET ROWCOUNT 10 
    SELECT * FROM TBL 

Just請記住使用後將其關閉

SET ROWCOUNT 0 
+2

沒有什麼技術上的錯誤。但我認爲TOP是可取的。它更簡單,潛在的副作用更小。但是,提醒後重置它的榮譽。很容易忘記和纏繞你的尾巴一段時間;) – Leigh

+0

是的,我同意'TOP'可能是更好的解決方案。之後我會提醒您重置它,因爲** I **經常會忘記這一小步,並且是的,這可能會令人沮喪地試圖找出事後發生的事情。 – PaulStock