首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

在sql server中利用with as兑现递归功能

2013-07-08 
在sql server中利用with as实现递归功能在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临

在sql server中利用with as实现递归功能

在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临时表与while语句来循环。自sqlserver2005之后,新增了with as功能语法,即 公用表达式(CTE),让递归实现起来变的简单了。

本章我们主要演示如何利用with as功能实现一个简单的递归功能。



--开始实例演示--

先创建一个仓库表,表名为Storage_Depository,该表有三个字段:DID(仓库编号),DName(仓库名称),PID(父仓库编号).
通过这样一个简单表,就可以将所有仓库信息,通过DID与PID字段来创建一个树型结构。
创建表的sql语句:

with w_Storage_Depository as(select DID,DName,PID from Storage_Depository where DID='A-1-1'union allselect A.DID,A.DName,A.PID from Storage_Depository A,w_Storage_Depository B where A.DID=B.PID)select * from w_Storage_Depository

热点排行