oracle基础查询

1.查询某表中相同列的按时间排序的最新一条数据

select * from (select m.*,row_number() OVER(PARTITION BY m.字段名 ORDER BY to_date(nvl(m.日期字段名,'1970-01-01 00:00:00'),'yyyy-mm-dd hh24:mi:ss') desc) as row_flg from 表名 m
order by m.ts desc) where row_flg = 1

 2.查询从属数据某数据的全部上级

  m.DEPTID IN (SELECT 字段名 FROM 表名 START WITH 列名= #{该数据ID} CONNECT BY PRIOR 父列名=列名 )

 

3.查询从属数据某数据的全部下级

m.DEPTID IN (SELECT 字段名 FROM 表名 START WITH 列名= #{该数据ID} CONNECT BY PRIOR 列名= 父列名)

 

4.指定列内容排序

 ORDER BY INSTR('2,3,-1,0,1', 列名)

 

posted @ 2021-11-16 11:28  狴颜丶领衔  阅读(39)  评论(0编辑  收藏  举报