数据库递归查询-CTE】的更多相关文章

1.公用表表达式(CTE)的定义 公用表达式的定义包含三部分: 公用表表达式的名字(在WITH之后) 所涉及的列名(可选) 一个SELECT语句(紧跟AS之后), 公用表表达式的好处之一是可以在接下来一条语句中多长引用,记得是接下来一条语句 在MSDN中的原型: WITH expression_name [ ( column_name [,...n] ) ] AS ( CTE_query_definition ) 2.非递归公用表表达式(CTE) 非递归的CTE引用与普通Select查询没有太实…
IF OBJECT_ID('[ta]') IS NOT NULL      DROP TABLE [ta] Go CREATE TABLE ta([id] INT,[name] NVARCHAR(4),[parentid] NVARCHAR(2)) Go INSERT INTO ta    SELECT 1,'河北省','0' UNION ALL    SELECT 2,'邢台市','1' UNION ALL    SELECT 3,'石家庄市','1' UNION ALL    SELECT …
--关于使用CTE(公用表表达式)的递归查询 --CTE 的基本语法结构如下: WITH expression_name [ ( column_name [,...n] ) ] AS ( CTE_query_definition ) --只有在查询定义中为所有结果列都提供了不同的名称时,列名称列表才是可选的. --运行 CTE 的语句为: SELECT <column_list> FROM expression_name; --CTE后面也可以跟其他的CTE,但只能使用一个with,多个CTE…
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存.可以使用CTE来执行递归操作. 一.查询树状结构某节点下的所有子节点 with cte_child(id,areaName,pid,level) as ( --起始条件 as level from erp_area -- 优先列出…
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存.可以使用CTE来执行递归操作.创建的语法是: with <name of you cte>(<column names>) as( <actual query> ) select * from…
http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动态网页开发技术,要用它完成实践项目工程的开发,需要掌握的知识点比较多.为了让读者对JSP这一开发技术的知识体系有个全面.清晰的了解,为后续的学习打下基础,本章将首先讲述作为一名JSP程序员应该掌握的技术知识体系和本书的内容安排.接着,对JSP技术进行了简要的介绍,使读者了解JSP技术的功能和优势.读…
在做数据库设计这块,很多时候表的数据模型就是典型的二叉树结构. 于是在查询数据的时候,就涉及到了数据的递归查询. 递归查询分为两种:1.从根节点查询自身以及所有的子节点:2.从子节点查询自身以及所有的父节点. 下面分别以Oracle 11g 数据库和MsSql 2008 数据库为例,来实现上述两种类型的递归查询 先建一张表 表名: TAdministrative  字段名称  说明  AdministrativeID  行政编号  AdministrativePID  当前行政级别的上一行政级别…
1 在写SQL时常常会用到暂时表,表变量和CTE,这三者在使用时各有优势: 1. 暂时表:分为局部暂时表和全局暂时表. 1.1局部暂时表,创建时以#开头,在系统数据库tempdb中存储. 在当前的链接可见,链接断开则暂时表就自己主动被释放,也能够手动drop table #tmptable 在使用不同的链接同一时候创建同样的暂时表时,互不影响,系统在tempdb中会自己主动附加以特定的session为标识的名字来区分. 经常在SP中使用,把须要操作的数据或者共同的数据取出放在暂时表中,兴许能够进…
使用CTE进行递归查询,能够实现对层次结构的数据的快速访问,非常有用. TSql CTE 递归原理探究 TSql 分层和递归查询 1,CTE的递归结构 递归查询的结构包括两部分:起始点和迭代公式. 使用CTE递归,其迭代终止条件是达到max_recursive指定的递归次数,或递归公式返回的结果集是empty,(即递归公式没有返回任何结果). 创建测试数据:ManagerID是UserID的父节点,这是一个非常简单的层次结构模型. use tempdb go create table dbo.d…
感觉这个CTE递归查询蛮好用的,先举个例子: use City; go create table Tree ( ID int identity(1,1) primary key not null, Name varchar(20) not null, Parent varchar(20) null ) go insert Tree values('大学',null) insert Tree values('学院','大学') insert Tree values('计算机学院','学院') in…