我已经包含了用户的数据表,我首先需要用户前如何限制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