我在Oracle中使用了列#34;标识号"其中包含客户的识别号码。我想选择10个可选的身份号码 - 如何做到这一点;你能救我吗?
P.S。我是Pl / SQL的新手
答案 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 功能感兴趣。