DB2中实现等级查询一

来源:互联网 发布:我的淘宝显示新开店铺 编辑:程序博客网 时间:2024/05/07 11:31

//目录表的数据结构,为了方便,采用了统一的数据类型
create table Folder
(
    folderID varchar(20),  //本目录的标识
    parentID varchar(20),  //父目录的标识
    Name varchar(20),    //目录名
    status varchar(20)    //目录状态
)


//建一个函数,通过父ID查询出所有的子ID,返回的是一个表,表中只有所有的子ID
CREATE FUNCTION F_GETDIRECTCHILDS (PARENT VARCHAR(20))
  RETURNS TABLE (ID VARCHAR(20))    //返回的是一个只有id的表
  LANGUAGE SQL   //指定程序用SQL语言
  DETERMINISTIC  //表示动态返回结果集
  READS SQL DATA  //表示只可读取数据
  STATIC DISPATCH  //
  NO EXTERNAL ACTION  //表示存储过程是否执行一些改变理数据库状态的活动,
  INHERIT SPECIAL REGISTERS    //表示继承专用寄存器
  RETURN   //返回结果集的最终执行SQL
  SELECT child_id
  FROM ( SELECT folderid FROM folder WHERE folder.parentid = f_getdirectchilds.parent) AS T(child_id)