我已經包含了用戶的數據表,我首先需要用戶前如何限制SQL Server的結果?
id-username
1-john
2-fredrek
3-sara
4-sarah
我需要fredrek, sara
後得到的只有最後2個用戶 - 如何在SQL Server中做到這一點?
我知道這樣做與MySQL我用LIMIT1,2但與SQL Server我不能
我已經包含了用戶的數據表,我首先需要用戶前如何限制SQL Server的結果?
id-username
1-john
2-fredrek
3-sara
4-sarah
我需要fredrek, sara
後得到的只有最後2個用戶 - 如何在SQL Server中做到這一點?
我知道這樣做與MySQL我用LIMIT1,2但與SQL Server我不能
可以在T-SQL中使用TOP:
SELECT TOP 2 FROM table_name
使用SQL Server,you can use the TOP command。
你必須做一個雙重查詢:
select * from (select top 10 * from (
select top 20 * from table_name order by 1 asc
) as tb_name order by 1 desc
) as tb_name_last
order by whathever;
爲了避免您可以使用ROW_NUMBER 2×TOP(注:你不能在一個語句的WHERE子句中直接使用ROW_NUMBER輸出)
;WITH cRN AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY id) AS rn,
username
FROM
mytable
)
SELECT username
FROM cRN
WHERE rn BETWEEN 2 AND 3
你有沒有簡單的解決方案? – 2011-04-10 10:12:44
這是簡單的解決方案。 SQL Server中沒有LIMIT功能(直到下一個版本)。 – gbn 2011-04-10 10:13:26
和我可以使用這種方式與PHP mssql_query(); – 2011-04-10 11:12:05
您可以使用TOP,限制WEHRE子句中,不拿第一寄存器
SELECT TOP 2 *
FROM MyTable
WHERE Id > 1
同樣的事情已經鐵餅sed:http://stackoverflow.com/questions/971964/limit-10-20-in-sqlserver – Senthil 2011-04-10 09:34:36