不是表定义的列,oracle为每张表分配的列。
oracle在获取到查询结果后添加的一列。它的值从1开始。
eg: SELECT rownum,t.* FROM T_EXCEPTION_TRADE t
注意:rownum是在获取到查询结果后加上去的列,如果用作对本身结果的限定条件,则查询结果为空
eg: SELECT rownum,t.* FROM T_EXCEPTION_TRADE t where rownum>1
通过对rownum进行区间限定,实现分页。
一般为2层,内层为分页条件和最大记录数限定。外层为查询结果字段获取和最小记录数限定。
eg:
SELECT PID, PSN FROM ( SELECT PID, PSN,rownum r FROM T_CPU_CONSUME t1 WHERE SETTLE_DATE=#{date,jdbcType=VARCHAR} AND ZIP_FILE_NAME=#{zipFileName,jdbcType=VARCHAR} AND AND NOT EXISTS ( SELECT 1 FROM T_CPU_CONSUME_ERROR WHERE PID=t1.PID AND PSN=t1.PSN and TAC=t1.TAC ) ) WHERE #{startNum}]]>
一种数据类型,18个字符组成,用于唯一标识一条记录的物理地址,与hashCode类似。
rowid是唯一的,所以可以用来去重。
eg:
--删除重复记录中的一条
DELETE FROM T_TEST WHERE rowid= ( SELECT min(rowid) FROM T_TEST WHERE PID=${pid} AND PSN=${psn} AND SETTLE_DATE=${date} and ZIP_FILE_NAME=${zipFileName} )
--保留一条重复记录
DELETE FROM T_TEST WHERE rowid not in( ( SELECT min(rowid) FROM T_TEST WHERE PID=${pid} AND PSN=${psn} AND SETTLE_DATE=${date} and ZIP_FILE_NAME=${zipFileName} ))
临时表是没有rowid的。