我在 Oracle 中有一个表,其中包含“标识号”列,其中包含客户的标识号。我想选择 10 个可选身份号码 - 如何操作;你能帮助我吗?
PS 我是 Pl/SQL 新手
如果您只想要任意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 行限制功能感兴趣。
| 归档时间: |
|
| 查看次数: |
26739 次 |
| 最近记录: |