我已经四处寻找了一段时间,似乎在任何地方都找不到。我想知道如何选择列中的 100 个最高值和 100 个最低值?MIN 函数只选择最低的一个,而 MAX 最高的一个。
有谁知道你是怎么做到的吗?
我已经四处寻找了一段时间,似乎在任何地方都找不到。我想知道如何选择列中的 100 个最高值和 100 个最低值?MIN 函数只选择最低的一个,而 MAX 最高的一个。
有谁知道你是怎么做到的吗?
SQL 服务器
前 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
你可以这样做,如下所示,
最高
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
子句用于指定要返回的记录数。
使用升序和降序排序并将输出限制为 100
如果您使用 Sql 服务器,您可以订购查询 desc 并选择前 1000 个,例如:
select top(1000) * from mytable order by value desc
试试这个:
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
这是另一种独立于数据库引擎的方法
最大限度
select * from MyTable a where 100 > (select count(id) from MyTable b where a.MyCol <= b.MyCol) order by MyCol desc