Oracle纯SQL实现递归查询分页(树查询分页)

news/2024/7/18 9:20:39

查遍了Google、Baidu,都没有结果,可能是关键词不对。只好发挥自己的想象力,对,想象力,终于实现了。

需求是:根节点有N级子节点,显示从根节点到该子节点的所有父子节点。说白了,pageSize是根据根节点数量确定的,而不是根节点+子节点,传统的ROWNUM形式就可以说拜拜了。以下是我自己的实现,如有更好的方案,请指点,不过,我这里有个明显的缺陷,需要某个字段是递增的。

SELECT * FROM (
  SELECT
    XXX_LEVEL
    ,ID,XXX_NAME,
    CASE XXX_LEVEL WHEN 1 THEN
      (SELECT COUNT(1) FROM XXX_XXX_CAT WHERE XXX_LEVEL = 1 AND ID <= DTC.ID)
    ELSE 0
    END COUNTS
  FROM XXX_XXX_CAT DTC
  START WITH ID IN (
    SELECT ID FROM XXX_XXX_CAT
    WHERE
      XXX_NAME LIKE 'A%'
  ) CONNECT BY PRIOR XXX_CODE = PARENT_XXX_CODE
) WHERE COUNTS < 2 AND COUNTS >= 1 OR COUNTS = 0;

 

转载于:https://my.oschina.net/vright/blog/1607682


http://www.niftyadmin.cn/n/2434441.html

相关文章

Java反射(1)

Java反射 Java反射机制是运行状态中&#xff0c;对于任意一个类都能够知道这个类的所有属性和方法&#xff08;包括私有的&#xff09;&#xff1b;对于任意一个对象&#xff0c;都能够调用他的任意方法和属性&#xff1b;这种动态动态获取信息及动态调用对象方法的功能称为功能…

【定制化图像开放平台】入门实例之手写数字模型训练

为什么80%的码农都做不了架构师&#xff1f;>>> 本帖主要用手写数字为例进行一个简单入门实例总结(非官方) 平台网站:http://ai.baidu.com/customize/app/model/ 定制化图像开放平台使用教程之一:http://ai.baidu.com/forum/topic/show/492760定制化图像开放平台使用…

泛型新手心得

泛型 是JDK1.5版本后出现的新特性&#xff0c;是一个类型安全机制。 优势 1.将运行时出现的ClassCastException转移到编译时期&#xff0c;方便程序员解决问题&#xff0c;让运行时问题减少&#xff0c;更安全。 2.避免了强制转换的麻烦。 ArraryList<String> al new Ar…

python小游戏(剪刀石头布)

#!/usr/bin/python#-- coding: utf8--import random #导入随机数的模块 computer random.choice([石头, 剪刀, 布])player raw_input(请出拳(石头/剪刀/布): ) print "Your choice: %s, Computers choice: %s" % (player, computer)if player 石头:if computer 石…

java反射(2)——属性的操作

java反射 之前的博客java反射讲了有关java反射的基础知识&#xff1a;什么是java发射&#xff0c;如何获取Class对象&#xff0c;如何获取到Class对象的属性、方法和构造方法等。 今天的博客主要有关如何操作属性、方法、构造方法 我们直接进入主题&#xff1a;要想操作一个类…

Android NDK开发之旅11 JNI JNI数据类型与方法属性访问

###JNI数据类型 #####JNI的数据类型包含两种: 基本类型和引用类型 ####基本类型 基本类型主要有jboolean, jchar, jint等, 它们和Java中的数据类型对应关系如下表所示: Java类型JNI类型描述booleanjboolean无符号8位整型bytebyte无符号8位整型charjchar无符号16位整型shortjsho…

装饰设计模式详解

装饰设计模式 模式定义和动机 装饰模式可以在不改变一个对象本身的基础上给对象增加额外的新行为&#xff08;方法&#xff09;&#xff0c;在实现生活中的例子有很多&#xff0c;买了毛坯房需要装修&#xff0c;我们每个人对毛坯房的新装修&#xff08;新功能&#xff09;可能…

转载 React.createClass 对决 extends React.Component

先给出结论&#xff0c;这其实是殊途同归的两种方式。过去我们一般都会使用 React.createClass 方法来创建组件&#xff0c;但基于 ES6 的小小语法糖&#xff0c;我们还可以通过 extends React.Component 来创建组件。 这两种创建方式之间的差别很小&#xff0c;但只有了解这些…