Oracle 对某张表中的某一列进行取余,将结果集分为多个集合

比如分为 5个集合,那么就用某一列和5 取余 ,分别可以取  余数为 0、1、2、3、4 的结果集,那么就把集合分为5个小的集合了

1、取余数为 0 的集合

select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 0


2、取余数为 1 的集合


select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 1


3、取余数为 2 的集合


select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 2


4、取余数为 3 的集合


select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 3


5、取余数为 4 的集合


select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 4

6、取整个集合所有返回

select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 0
union
select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 1
union
select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 2
union
select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 3
union
select *
from (select MOD(T.ID, 5) rest, t.* from T_AEMR_DOC t) a
where a.rest = 4

猜你喜欢

转载自www.cnblogs.com/yinfengjiujian/p/11778197.html