sql如何查询编号最末端数据?

image.png我想查询这种编号字段的最末尾的数据,这个sql该怎么写呀?

编号级别可能不止三级。

SQL Mr扬帆 发布于 2023-4-24 15:36 (编辑于 2023-4-24 15:37)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
七夜Lv6初级互助
发布于2023-4-25 13:55(编辑于 2023-4-25 14:39)

新加一个辅助列flag,判断如果存在以当前编号为前缀的记录,flag置为N,如果不存在以当前编号为前缀的记录,flag置为Y,然后再过滤就可以了。

直接查询可以参照下面这个,效率不高

with temp as (      select '3' as col from dual      union       select '3.2' as col from dual      union       select '3.2.1' as col from dual      union       select '3.2.2' as col from dual           union       select '4' as col from dual      union       select '4.1' as col from dual      union       select '4.2' as col from dual      union       select '4.2.1' as col from dual      ),      a as(      select t.col col1,t1.col col2,instr(t1.col,t.col,1,1) flag1,instr(t.col,t1.col,1,1) flag2      from temp t,temp t1      ),      b as (      select * from a where flag1 <> 0 and flag2 <> 1      ) select distinct col2 from b where b.col2 not in (select col1 from b) order by col2

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-24 15:43

oracle?SqlServer?mysql?

  • 2关注人数
  • 401浏览人数
  • 最后回答于:2023-4-25 14:39
    请选择关闭问题的原因
    确定 取消
    返回顶部