Oracle中如何从列中选择10行

Kos*_*uta 5 sql oracle select

我在 Oracle 中有一个表,其中包含“标识号”列,其中包含客户的标识号。我想选择 10 个可选身份号码 - 如何操作;你能帮助我吗?

PS 我是 Pl/SQL 新手

Lal*_*r B 5

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

SELECT * FROM table_name 
   WHERE ROWNUM <=10;
Run Code Online (Sandbox Code Playgroud)

如果您想要满足条件的一组特定值的10 行,请添加过滤谓词

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

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

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

如果您想要特定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;
Run Code Online (Sandbox Code Playgroud)

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