在SQL中选择100个最低值?

时间:2013-09-05 06:35:55

标签: sql sql-server sql-server-2008-r2

我一直在四处寻找,似乎无法在任何地方找到它。我想知道如何选择列中的100个最高值和100个最低值? MIN功能仅选择最低的一个,MAX选择最高的一个。

有谁知道你是怎么做到的?

6 个答案:

答案 0 :(得分:6)

SQL Server

  • 前100名最高

    SELECT TOP 100 * FROM MyTable
    ORDER BY MyCol DESC
    
  • 前100名最低

    SELECT TOP 100 * FROM MyTable
    ORDER BY MyCol ASC
    

的MySQL

  • 前100名最高

    SELECT * FROM MyTable
    ORDER BY MyCol DESC LIMIT 100
    
  • 前100名最低

    SELECT * FROM MyTable
    ORDER BY MyCol ASC  LIMIT 100
    

答案 1 :(得分:2)

您可以按照以下方式执行,

<强>最高

select * from
tablename
order by
column DESC
limit 0,100

<强>最低

select * from
tablename
order by
column ASC
limit 0,100

修改

对于SQL Server,将select * from替换为select TOP 100 * from

SELECT TOP子句用于指定要返回的记录数。

答案 2 :(得分:1)

按升序和降序排序,并将输出限制为100

答案 3 :(得分:1)

如果您使用Sql server 您可以订购查询desc并选择前1000名,如:

select top(1000) * from mytable order by value desc

答案 4 :(得分:0)

试试这个:

DECLARE @V_MaxNo INT; 
SELECT @V_MaxNo = COUNT(1) FROM TABLE_NAME WHERE (CONDITION_PART_AS_REQUIRED); 
SELECT COLUMN_LIST
FROM (SELECT ROW_NUMBER() OVER (ORDER BY [Order_by_column_list_with_ASC/DESC]) rowNo, COLUMN_LIST 
      FROM TABLE_NAME) A 
WHERE (100 - rowNo) >= 0 or (@V_MaxNo - rowNo) < 100

答案 5 :(得分:0)

这是另一种独立于db引擎的方法

MAX

select * from MyTable a where 100 > (select count(id) from MyTable b where a.MyCol <= b.MyCol) order by MyCol desc