`
d2hellen
  • 浏览: 105683 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

SQL2005递归查询语法

 
阅读更多
create table code_catalog_structure(catalogid nvarchar(10),col varchar(10),parentid nvarchar(10))
insert into code_catalog_structure select '我是一层的一','aaa','*ROOT*'
insert into code_catalog_structure select '我是一层的二','bbb','*ROOT*'
insert into code_catalog_structure select '我是二层的一','ccc','我是一层的一'
insert into code_catalog_structure select '我是二层的二','ddd','我是一层的二'
insert into code_catalog_structure select '我是三层的一','eee','我是二层的一'
insert into code_catalog_structure select '我是三层的二','fff','我是二层的二'
insert into code_catalog_structure select '我是三层的三','ggg','我是二层的二'
go
;with father as
(
  select *,lev=0,seq=CAST(catalogid AS VARBINARY) from code_catalog_structure where parentid = '*ROOT*'  
  union all
  select a.*,lev=lev+1,seq=CAST(seq+CAST(a.catalogid AS VARBINARY) AS VARBINARY) from code_catalog_structure a join father b on a.parentid = b.catalogid
)
select parentid,catalogid,lev,seq from father order by seq
/*
parentid   catalogid  lev
---------- ---------- -----------
*ROOT*	我是一层的一	0
我是一层的一	我是二层的一	1
我是二层的一	我是三层的一	2
*ROOT*	我是一层的二	0
我是一层的二	我是二层的二	1
我是二层的二	我是三层的二	2
我是二层的二	我是三层的三	2

(7 行受影响)

*/
go
drop table code_catalog_structure
分享到:
评论

相关推荐

    SQL 递归查询,并将结果集保存在临时表中

    在SQL中,递归查询是一种强大的工具,常用于处理层级数据,例如组织结构、树形菜单等。在给定的场景中,我们需要根据一个特定的节点ID查询出该节点及其所有子节点,并将这些结果存储在一个临时表中。以下是实现这一...

    递归下降语法分析

    7. `递归下降语法分析.sdf`:可能是SQL Server Compact Edition数据库文件,可能用于存储解析过程中的一些数据。 8. `递归下降语法分析.sln`:Visual Studio解决方案文件,包含一个或多个项目。 9. `example1.txt` ...

    SQL在递归查询和逻辑谓词上的扩充.pdf

    - **递归查询的语法扩充**:文章详细介绍了如何在SQL的现有语法基础上增加递归查询的语法结构,并提出了相应的解析和执行算法。 - **逻辑谓词的理论与算法**:对于逻辑谓词的扩充,文章探讨了相关的理论基础,给出...

    数据库设计之递归树查询

    在支持`WITH RECURSIVE`的数据库(如PostgreSQL、SQL Server)中,递归查询的通用语法如下: ```sql WITH RECURSIVE cte_name AS ( -- 初始化子查询(非递归部分) SELECT column1, column2, ... FROM table_...

    浅谈T-SQL语言之递归查询.pdf

    而SQL Server 2005引入的CTE(Common Table Expression,公用表表达式)提供了一种更简洁有效的方式,利用递归查询特性来处理层级数据。 CTE提供了一种可以引用自己的查询结果集的方法,它是一个临时命名的结果集,...

    sqlserver 2005 使用CTE 实现递归

    ### SQL Server 2005 中使用 CTE 实现递归 #### 一、CTE 递归原理 在 SQL Server 2005 中,使用公共表表达式(Common Table Expression, CTE)实现递归是一种高效且直观的方式。递归 CTE 通常由两部分构成:定位...

    存储过程递归查询

    #### 二、SQL递归查询语法介绍 递归查询主要通过`WITH`子句实现,具体格式如下: ```sql WITH recursive_query_name (column_list) AS ( -- 递归基 SELECT ... FROM table_name WHERE base_condition UNION ...

    SQL语句 递归

    ### SQL语句递归:Oracle中的递归查询详解 在数据库查询语言中,递归查询是一种非常强大的功能,尤其在处理具有层次结构的数据时尤为重要。本文将深入探讨Oracle数据库中的递归查询,包括其基本语法、工作原理以及...

    深入sql oracle递归查询

    总的来说,Oracle和SQL Server的递归查询功能虽然在语法上有所不同,但都能有效地处理层级数据和递归逻辑。理解并掌握这两种数据库的递归查询方法,对数据库管理和数据分析工作将大有裨益。在实际应用中,应根据具体...

    ORACLE和SQL Server的语法区别

    - **SQL Server:** SQL Server同样支持使用子查询进行更新操作,但在某些情况下可能需要重新编写子查询以适应SQL Server的语法。 ```sql UPDATE table_name SET column1 = (SELECT some_expr FROM some_table), ...

    hibernate实现递归查询

    这里我们将重点介绍HQL的使用,因为它的语法更接近SQL,对于开发者来说较为直观。 1. **建立实体类** 首先,我们需要定义一个实体类,假设为`Node`,它包含`id`、`name`和`parentId`等字段,表示节点的标识、名称...

    两种mysql递归tree查询效率-mysql递归tree

    2. **利用变量和循环**:这种方法通过在SQL查询中使用变量和循环结构来实现递归查询,适用于层级结构较为复杂的场景。 ##### 方法一:使用自连接和递归联合 自连接和递归联合是一种常见的递归查询方式,其核心思想...

    mysql递归查询.txt

    MySQL 中进行递归查询有两种常见的方式:一种是使用存储过程,另一种则是利用 SQL 函数来实现递归。 #### 二、通过存储过程实现递归查询 ##### 方法一:存储过程实现递归查询 **存储过程定义:** ```sql CREATE ...

    sql server 2005 技术内幕t-sql查询源码

    《SQL Server 2005 技术内幕:T-SQL查询源码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中使用的SQL扩展版本,它在标准SQL的基础上增加...

    MySQL实现递归查询的三种方式.rar

    从MySQL 8.0开始,引入了`WITH RECURSIVE`子句,这是一种标准的SQL语法,专门用于执行递归查询。它允许在单个查询中定义一个临时的、可递归的表,这极大地简化了处理层次结构数据的过程。 ```sql WITH RECURSIVE ...

    Oracle和SQL_Server的语法区别

    - Oracle 的 `START WITH U CONNECT BY` 用于创建层次查询,SQL Server 可以通过递归公共表表达式(CTE)或存储过程实现类似功能。 - Oracle 支持 `INTERSECT` 和 `MINUS` 集合运算符,而 SQL Server 用 `EXISTS` 和...

    Oracle递归查询

    在Oracle数据库中,递归查询主要依赖于`START WITH`和`CONNECT BY PRIOR`两个关键语法。本文将详细介绍这些概念以及具体的使用方法。 #### 二、创建示例表 为了更好地理解Oracle中的递归查询,我们首先需要创建...

    C++ SQL生成语法树

    2. 设计语法分析器:基于上下文无关文法(Context-Free Grammar,CFG)定义SQL语句的结构,并实现解析算法,如递归下降解析或LR/LALR解析。 3. 构建语法树:在解析过程中,根据解析规则生成对应的语法树节点。 4. ...

Global site tag (gtag.js) - Google Analytics