sql 如何在查询时移除某一行数据以及这一行的上一行数据

oracel 有个rownum 函数, 它可以为 某一行 数据增加一个序列比如查出的序列值便是

json 复制代码
[
{"name": "法外狂徒-张三",option":"申请团长", rownum:1},
{"name": "法外狂徒-张三","option":"申请人撤销", rownum:2},
{"name": "法外狂徒-张三","option":"申请旅长", rownum:3},
{"name": "法外狂徒-张三","option":"司令通过", rownum:4},
{"name": "法外狂徒-张三","option":"申请师长", rownum:5},
{"name": "法外狂徒-张三","option":"申请人撤销", rownum:6},
{"name": "法外狂徒-张三","option":"申请军长", rownum:7},
{"name": "法外狂徒-张三","option":"司令通过", rownum:8},
]

以上是表内的结果集,由于申请人撤销了操作,所以它之前的操作是无效的, 在页面也不显示, 申请人撤销这个字段是固定的,它之前的操作不固定, 所以如果想要过滤掉它之前的数据,我们需要先过去到申请人撤销那条数据的下标,再去-1.

想法, 我们可以先查询上面的结果集, 并且通过rownum为每个结果集定义一个固定的序号, 查询结果集select * from 结果集 where rownum not in ((select rownum from (结果集) where option = "申请人撤销" unine all select rownum -1 from (结果集) where option = "申请人撤销"))

这样我们就得到如下结果

json 复制代码
[

{"name": "法外狂徒-张三","option":"申请旅长", rownum:3},
{"name": "法外狂徒-张三","option":"司令通过", rownum:4},
{"name": "法外狂徒-张三","option":"申请军长", rownum:7},
{"name": "法外狂徒-张三","option":"司令通过", rownum:8},
]

由于结果集被反复使用到,我们在mybatis中可以将结果集sql 提出到sql片段中,便于反复调用

Mybaits.xml

xml 复制代码
<sql id= "dataSource">
  select t*,rownum as id from 表名 where t.name=#{name} order by operTime
</sql>

<sql id="removeRowIndex">
	select id from (<include refid="dataSource"/>) where option="申请人撤销"
	union all 
	select id-1 from (<include refid="dataSource"/>) where option="申请人撤销"
</sql>

<select id="getFolw" resultMap="java.util.HashMap" parameterType="java.util.HashMap">
  select * from(<include refid="dataSource"/>) q
  where q.id not in (
    (<include refid="removeRowIndex"/>)
    )
</select>
相关推荐
草莓熊Lotso31 分钟前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
进击的荆棘1 小时前
MySQL——库的操作
数据库·mysql
2601_967980112 小时前
“小程序·云开发”上线 助力开发者的高效利器
数据库·存储管理·小程序云开发·云函数·开发者工具
zhangjw342 小时前
1-9 SELECT 查询基础:where、group by、having、order by、limit offset
数据库·postgresql·pg数据库
唐老板2 小时前
Postgres 慢查询,先取证再动手
数据库·ai编程
笃行3509 小时前
数据库性能优化的五处内核改造,KingbaseES 配了四件诊断工具
数据库
非优秀程序员11 小时前
第02章 杭电的英语老师与一台服务器|《互联网产品恩仇录》
数据库·node.js·代码规范
SelectDB16 小时前
SelectDB 是哪个公司的?是国产数据库吗?一篇讲清飞轮科技与 Apache Doris 的关系
数据库
这个DBA有点耶16 小时前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
这个DBA有点耶18 小时前
函数索引的“完全一致”有多苛刻:写法、字符集、类型,差一处就失效
数据库·mysql·代码规范