`
y806839048
  • 浏览: 1126993 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

sql迭代 因为parentid is null 要有parentid为null的记录

 
阅读更多

用这种迭代,由于有start with parentid is null,所以第一行的查询必须有t.parentid is null的记录,如果被条件过滤掉了就加or t.parentid is null,

在用连接过滤时,如果有重复用distinct(只有放在第一列才不会出错),没有的列 要用常量补齐(0 leave1,不用'0'是因为和数据类型要匹配,也可直接用null

select * from (select * from 

(   

     select distinct(t.id) id, t.name name,t.parentid  parentid ,0 leave1,'1' leave from opm_menufolder t left join  opm_menuitem oo on t.id=oo.menufolderid where oo.id in (select MenuItemId from OPM_ROLELIMIT where ROLEID='ff8080814dc41486014dcd88e7830030') or t.parentid is null

   union all select distinct(o.id) id, o.name name,o.menufolderid ,o.level1 leave1,'2' leave  from opm_menuitem o  where o.id in (select MenuItemId from OPM_ROLELIMIT where ROLEID='ff8080814dc41486014dcd88e7830030') 

   union all select distinct(l.id) id, l.name name,l.menuitemid ,l.level1 leave1,'3' leave  from opm_menuitemlimit l where l.id in (select MENUITEMLIMITID from OPM_ROLELIMIT where ROLEID='ff8080814dc41486014dcd88e7830030')

  

start with parentid is null connect by prior id=parentid ORDER SIBLINGS BY parentid) 

 

 

 

select * from (select * from 

(   

     select t.name name,t.id  id,t.parentid  parentid ,0 leave1,'1' leave ,null uri from opm_menufolder t 

   union all select o.name name,o.id id,o.menufolderid,o.level1 leave1,'2' leave, o.uri uri from opm_menuitem o

   union all select l.name name,l.id id,l.menuitemid ,l.level1 leave1,'3' leave , l.uri uri from opm_menuitemlimit l

start with parentid is null connect by prior id=parentid ORDER SIBLINGS BY parentid)

分享到:
评论

相关推荐

    sql查询某个parentid下的所有childid

    - `ORG_PARENTID`为该组织机构的上级组织机构ID,如果是顶级节点,则此字段为NULL或特定值(如0)。 #### 3. 数据插入 接下来,向表中插入一些示例数据以便于演示: ```sql INSERT INTO TB_SM_ORGAN (ORG_ID, ORG...

    全国省市区JSON,包含parentid

    树形结构,包含parentid,可直接传入ui组件显示 { "value": "120000", "label": "天津", "children": [ { "value": "120100", "label": "市辖区", "parentid": "120000", "children": [ { "value": "120101...

    ORACLE与SQLSERVER语法差异分析

    - SQL SERVER使用`ISNULL()`函数,功能类似,如果第一个参数为NULL,则返回第二个参数。 5. **日期格式化**: - ORACLE的`TO_CHAR()`函数用于将日期转换为字符串,可以自定义格式模型。 - SQL SERVER则需要结合`...

    根据ID,ParentID绑定treeview

    在树形结构中,每个非根节点都有一个父节点,根节点则没有ParentID,它的ParentID通常设为null或特殊值。 TreeView控件的工作原理是通过数据源(如数据库、XML文件或自定义数据结构)获取数据,并根据数据中的ID和...

    TreeView绑定SQL数据库

    WHERE ParentId IS NULL UNION ALL SELECT d.ParentId, d.Id, d.Name FROM Department d JOIN RecursiveCTE r ON d.ParentId = r.Id ) SELECT * FROM RecursiveCTE; ``` 在C#代码中,使用`SqlCommand`类执行此...

    2021年全国最新地区数据sql文件五级联动

    `ParentId` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '父ID', `LevelType` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ...

    t_area.sql

    最全2019全国地址库,mysql专用sql CREATE TABLE IF NOT EXISTS `T_Area` ( `areaId` int(20) NOT NULL AUTO_INCREMENT COMMENT '地区Id', `areaCode` varchar(50) NOT NULL COMMENT '地区编码', `areaName` ...

    大学专业表(全国本科专业分类目录及专业代码)SQL

    `parentId` int(11) NULL DEFAULT NULL COMMENT '上级di', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 457 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专业表' ROW_...

    全国省市区数据(Sql Server 版)

    2. **北京市东城区**:CodeId为110101,ParentId为1101(即北京市),Name为空(此处应填写正确的区名),创建时间为当前系统时间。 3. **其他示例**:同样遵循上述模式,每个子区的ParentId都指向其所属的上级区域...

    SQLServer表数据转化为sql语句(表数据搬运,一键快捷导出为insert语句,方便导入到其它库)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件,如'a=''123'' '(传...

    dict_diqu_detail.sql

    `ParentId` varchar(255) DEFAULT NULL, `ShortName` varchar(255) DEFAULT NULL, `LevelType` varchar(255) DEFAULT NULL, `CityCode` varchar(255) DEFAULT NULL, `ZipCode` varchar(255) DEFAULT NULL, ...

    读取无限树(SQL+C#)

    WHERE ParentID IS NULL -- 查询根节点 UNION ALL SELECT t.ID, t.ParentID, t.Name FROM TreeNode t JOIN RecursiveTree rt ON t.ParentID = rt.ID ) SELECT * FROM RecursiveTree; ``` 接下来是C#部分,...

    sql 遞迴寫法 (webcs cs department 如何知道最上層department)1

    WHERE parentid IS NULL START WITH code = 'GF2712' CONNECT BY PRIOR parentid = id ``` **解法3:列出特定层次的数据** ```sql SELECT * FROM ( SELECT z.*, ROWNUM AS pos FROM ( SELECT id, name, code, ...

    SQL实现无限级树形菜单

    WHERE ParentCategoryID IS NULL UNION ALL SELECT c.CategoryID, c.CategoryName, c.ParentCategoryID, r.Level + 1 FROM Categories c JOIN RecursiveCategories r ON c.ParentCategoryID = r.CategoryID ) ...

    sql server 2008 递归查询所有上级或下级数据

    在SQL Server 2008中实现递归查询来获取所有上级或下级数据是一项非常实用的技术,尤其是在处理具有层次结构的数据时。本篇将详细解释如何利用Common Table Expressions (CTE)来完成这样的查询,并对提供的示例代码...

    最新全国行政区域含拼音缩写(截止2019年9月6日,源自腾讯地图).sql

    [ParentID] float(53) NULL, [Path] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, [Enabled] float(53) NULL, [Jianpin] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL, [Quanpin] nvarchar(100) COLLATE ...

    全国行政区划表 包含树形结构 id name parentId格式

    自己整理的全国行政区划表,包含一个树形表格式为 id name parentId code格式

    sql_函数实现三种父子递归

    实现这一功能的方法与正向递归类似,但需要从当前节点开始回溯,逐级查找父节点,直到达到根节点(ParentId为NULL)。 3. 面包屑导航数据: 面包屑导航通常用于显示用户在网站或系统中的当前位置路径,例如“首页 >...

    解密SQL存储过程,适用于SQLSERVER2000存储过程

    ### 解密SQL Server 2000存储过程详解 #### 一、背景介绍 在数据库管理系统(DBMS)中,存储过程是一种预先编译好的SQL语句集合,它被保存在数据库服务器上,并且可以像调用普通函数一样被应用程序所调用。这种机制...

Global site tag (gtag.js) - Google Analytics