如何从Oracle中的列中选择10行

时间:2015-05-22 08:59:21

标签: sql oracle select

我在Oracle中使用了列#34;标识号"其中包含客户的识别号码。我想选择10个可选的身份号码 - 如何做到这一点;你能救我吗?

P.S。我是Pl / SQL的新手

1 个答案:

答案 0 :(得分:0)

如果您只想要 10个随机行,那么只需使用 ROWNUM

SELECT * FROM table_name 
   WHERE ROWNUM <=10;

如果您想要符合条件的特定值集 10行,请添加过滤谓词

SELECT * FROM table_name 
WHERE identification number IN (1, 2, 3,4, 5, 6, 7, 8, 9, 10);

如果identification number列有重复值,再次添加 ROWNUM 来过滤行,则会再次随机选择行:

SELECT * FROM table_name 
   WHERE identification number IN (1, 2, 3,4, 5, 6, 7, 8, 9, 10) 
   AND   ROWNUM <=10;

如果您想要特定 ORDER 中的10行,则必须先对它们进行排序,然后应用ROWNUM来限制最终输出中的行数:

SELECT * FROM(
   SELECT * FROM table_name 
      WHERE identification number IN (1, 2, 3,4, 5, 6, 7, 8, 9, 10) 
    ORDER BY identification number
             )
  WHERE ROWNUM <=10;

您可能还对Oracle 12c中引入的新 Top-n row limiting 功能感兴趣。