MSSQL 查找子結節與父節點

-->Title:Generating test data

-->Author:wufeng4552

-->Date :2009-09-30 08:52:38

set nocount on

if object_id(‘tb‘,‘U‘)is not null drop table tb

go

create table tb(ID int, ParentID int)

insert into tb select 1,0

insert into tb select 2,1

insert into tb select 3,1

insert into tb select 4,2

insert into tb select 5,3

insert into tb select 6,5

insert into tb select 7,6

-->Title:查找指定節點下的子結點

if object_id(‘Uf_GetChildID‘)is not null drop function Uf_GetChildID

go

create function Uf_GetChildID(@ParentID int)

returns @t table(ID int)

as

begin

   insert @t select ID from tb where [email protected]

   while @@rowcount<>0

   begin

      insert @t select a.ID from tb a inner join @t b

      on a.ParentID=b.id and

      not exists(select 1 from @t where id=a.id)

   end

return

end

go

select * from dbo.Uf_GetChildID(5)

/*

ID

-----------

6

7

*/

-->Title:查找指定節點的所有父結點

if object_id(‘Uf_GetParentID‘)is not null drop function Uf_GetParentID

go

create function Uf_GetParentID(@ID int)

returns @t table(ParentID int)

as

begin

   insert @t select ParentID from tb where [email protected]

   while @@rowcount!=0

   begin

     insert @t select a.ParentID from tb a inner join @t b

       on a.id=b.ParentID and

       not exists(select 1 from @t where ParentID=a.ParentID)

   end

  return

end

go

select * from dbo.Uf_GetParentID(2)

/*

ParentID

-----------

1

0

*/

时间: 2024-09-30 07:01:05

MSSQL 查找子結節與父節點的相关文章

WPF查找子控件和父控件方法[转帖]

WPF查找子控件和父控件方法 一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement { DependencyObject child = null; List<T> childList = new List<T>(); for (int i = 0; i <= V

查找子控件和父控件方法

一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement        {            DependencyObject child = null;            List<T> childList = new List<T>(); for (int i

在父字符串中查找子字符串

在父字符串中查找子字符串(指针控制,也可选择标控制) #pragma once #include<iostream> #include<assert.h> using namespace std; char* StrStr(char* source, char* dest) { assert(source&&dest); if (strlen(source) < strlen(dest)) return NULL; char* newSrc = NULL; c

jquery 获取子iframe和获取父框架的例子

今天做前端页面设计,用到了iframe,查找资料,整理出来几个用jquery 获取子iframe和获取父框架的例子,用起来非常方便. 在firefox最新版(41)和IE9下测试通过.jquery 版本11.3. //获取子框架coverIframeFormTargetId中ID为attachment_Cover_Image_id的value的值 var attid =$("#coverIframeFormTargetId").contents().find("#attach

iframe子页面内刷新父页面中另一个iframe子页面

框架页面如下: <div id="aa" style="float: left; height: 500px; border-right-style: solid; border-right-color: #CCCCFF; border-right-width: 2px;"> <IFRAME id="tree" name="tree" src="/ScienProjectWeb/commonjsp/

JS子元素oumouseover触发父元素onmouseout

JavaScript中,父元素包含子元素: 当父级设置onmouseover及onmouseout时,鼠标从父级移入子级,则触发父级的onmouseout后又触发onmouseover:从子级移入父级后再次触发父级的oumouseout后又触发onmouseover.而如果onmouseover内又应用了计时器便会存在较大的问题.下面针对此问题给出解决方案. 首先,在给出解决方案之前,必须先弄清楚几个对象及方法,分别如下: 1.事件对象 2.事件对象相关属性(只针对onmouseover及onm

异步操作执行后子页面重新修改父页面iframe高度

子页面加入ajax全局方法: <script language="javascript" type="text/javascript"> $(document).ready(function () {//异步请求加载完成 $.ajaxSetup({ 'complete': function () { //修改iframe高度 reSizeParentIframe(); } }); }); </script> 修改iframe高度: //子页面

转:iframe加载的子页面里面获取父级元素窗口以及元素的高度

iframe里的js要操作父级窗口的dom,必须搞懂几个对象: parent是父窗口(如果窗口是顶级窗口,那么parent==self==top) top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe) self是当前窗口(等价window) 父级页面:index.html <!doctype html> <html> <head> <meta charset="utf-8"> <title>父窗口<

JS实现关闭当前子窗口,刷新父窗口

一.JS实现关闭当前子窗口,刷新父窗口 JS代码如下: <script> function refreshParent() {  window.opener.location.href = window.opener.location.href;  window.close();   }              </script>