sql - 如何选择n行

标签 sql mysql sql-server database oracle

我有一个关于几家公司的数据库,其中包括它们的名称、股价、年龄变化百分比:

NAME           PRICE              % CHANGE
-------------------------------------------------
a              67                  11
b              23                  6
c              456                 5.89  
d              112                 23.98       
e              31                  17            
f              78                  3.09              
g              2678                12.56                   
h              357                 4.6                

我想明智地选择前 5 行 %age,这意味着它有最大 %age 显示在顶部...n 前面是 jst 4 more value in desc。订单...

输出应该是

NAME           PRICE              % CHANGE
-------------------------------------------------
d              112                 23.98   
e              31                  17            
g              2678                12.56  
a              67                  11   
b              23                  6              

最佳答案

使用 MySQL/Postgres:

  SELECT t.name,
         t.price,
         t.change
    FROM TABLE t
ORDER BY t.change DESC
   LIMIT 5

LIMIT 子句:

使用 SQL 服务器:

  SELECT TOP 5
         t.name,
         t.price,
         t.change
    FROM TABLE t
ORDER BY t.change DESC

TOPsupported on SQL Server 2000+ at least

甲骨文:

SELECT x.*
  FROM (SELECT t.name,
               t.price,
               t.change
          FROM TABLE t
      ORDER BY t.change DESC) x
 WHERE ROWNUM <= 5

甲骨文的 ROWNUM

关于sql - 如何选择n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735614/

相关文章:

mysql触发查询。这是对的吗?

MySQL 将父行与子行放在一起

java - SQL Where 子句不返回任何内容 - 初学者

SQL Server : group_by select active dates

c# - 一棵树如何存储在数据库中?

java - Hibernate:对象被删除但仍然可以被Hibernate加载

MySQL:按时间比较结果的排序

php - DateTime倒计时和到期

sql - 如何使用 SQL Server 获得正确的时间格式?

c# - 无法使用连接字符串连接到本地 SQL Server 数据库,但 VS 可以