我如何限制SQL Server的结果?

时间:2011-04-10 09:21:04

标签: sql-server

我有包含用户数据的表格,我需要在第一个用户ex之后只获得最后2个用户

id-username
1-john
2-fredrek
3-sara
4-sarah

我需要获取fredrek, sara - 如何在SQL Server中执行此操作?

我知道用MySQL做这个我使用LIMIT1,2但是使用SQL Server我不能

5 个答案:

答案 0 :(得分:2)

要避免使用2 x TOP,您可以使用ROW_NUMBER(注意:您不能在单个语句的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

答案 1 :(得分:1)

您可以在WHERE子句中使用TOP限制,而不是使用第一个寄存器

SELECT TOP 2 *
FROM MyTable
WHERE Id > 1

答案 2 :(得分:0)

您可以在T-SQL中使用TOP:

SELECT TOP 2 FROM table_name

答案 3 :(得分:0)

使用SQL Server,you can use the TOP command

答案 4 :(得分:0)

您必须进行双重查询:

   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;