我一直在四处寻找,似乎无法在任何地方找到它。我想知道如何选择列中的100个最高值和100个最低值? MIN功能仅选择最低的一个,MAX选择最高的一个。
有谁知道你是怎么做到的?
答案 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