问题背景:
需要将ORACLE中的15万条user_id贴到HIVE中作为条件执行SQL。通过ExPaste再贴过去不现实.而中间表又没有可用的分组字段。
这时候想到了ROWID,后面通过查阅资料可以使用rownum
rownum是oracle特有的一个关键字。对于基表,在insert记录时,oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,rownum的排序是根据insert记录的顺序显示的。
使用技巧:
第一条记录:
前2条记录 :
嵌套使用:
分页:
无ORDER BY排序的写法。(效率最高):
SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM xxxxt WHERE hire_date BETWEEN TO_DATE('20060501', 'yyyymmdd') AND TO_DATE('20060731', 'yyyymmdd') AND ROWNUM <= 20) table_alias WHERE table_alias.rowno >= 10;