惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
宝玉的分享
宝玉的分享
V
V2EX
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
美团技术团队
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
B
Blog RSS Feed

博客园 - 徘徊中的海鸟

在Dictionary使用foreach的注意 ADO.NET,连接\连接池问题 - 徘徊中的海鸟 - 博客园 关于sql server占用系统资源的问题 ASP.NET 的内存不足问题 SQL拆分字段 生成代码自动加入到解决方案中 SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库 .net 发现的cache 问题 .NET线程若干问题 HttpContext.Cache 和 HttpRuntime.Cache IIS 6.0中配置HTTP Gzip压缩 pre标签自动换行方案 HttpWebRequest 和 浏览器打开的区别 TestDirector 安装、使用心得 连接数问题 w3wp 进程问题 关于CultureInfo 提高sql的效率 SQL中只获取日期值
读取树数据SQL
徘徊中的海鸟 · 2007-05-11 · via 博客园 - 徘徊中的海鸟

 --生成测试数据  
  create   table   BOM(ID   INT,PID   INT,MSG   VARCHAR(1000))  
  insert   into   BOM   select   1,0,NULL  
  insert   into   BOM   select   2,1,NULL  
  insert   into   BOM   select   3,1,NULL  
  insert   into   BOM   select   4,2,NULL  
  insert   into   BOM   select   5,3,NULL  
  insert   into   BOM   select   6,5,NULL  
  insert   into   BOM   select   7,6,NULL  
  go  
   
  --创建用户定义函数  
  create   function   f_getChild(@ID   VARCHAR(10))  
  returns   @t   table(ID   VARCHAR(10),PID   VARCHAR(10),Level   INT)  
  as  
  begin  
          declare   @i   int,@ret   varchar(8000)  
          set   @i   =   1  
          insert   into   @t   select   ID,PID,@i   from   BOM   where   PID   =   @ID  
           
          while   @@rowcount<>0  
          begin  
                  set   @i   =   @i   +   1  
                   
                  insert   into   @t    
                  select    
                          a.ID,a.PID,@i    
                  from    
                          BOM   a,@t   b    
                  where    
                          a.PID=b.ID   and   b.Level   =   @i-1  
          end  
          return  
  end  
  go  
   
  --执行查询  
  select   *   from   dbo.f_getChild(0)  
  go  
   
  --输出结果  
  /*  
  5  
  6  
  7  
  */  
   
  --删除测试数据  
  drop   function   f_getChild  
  drop   table   BOM

posted on 2007-05-11 17:33  徘徊中的海鸟  阅读(251)  评论()    收藏  举报