SQL递归获取所有父节点的函数 SQL递归获取所有父节点的函数
SQL递归获取所有父节点的函数
*************
函数如下,请根据你自己的实际情况,把汉字换成相应的具体信息
*************
CREATE FUNCTION 函数名( @id AS varchar(2)) RETURNS varchar(1000) AS 
BEGIN
    DECLARE @tmp VARCHAR(1000)
    IF @id IS NOT NULL
    BEGIN
        SELECT @tmp=@id , isnull(dbo.函数名(第三列字段),) FROM [表名] WHERE [第一列字段] = @id 
    END
    RETURN @tmp
END
***********
调用方法:
***********
SELECT substring(dbo.函数名(15),1,len(dbo.函数名(15))-1)
**********
给你个我测试的截图,参考
**********
---
以上,希望对你有所帮助。
SQL递归获取所有父节点的函数
我写了个不知道能不能帮助你数据库Sql server2000 sql语句 if exists(select name from sysobjects where name=selectAddress)
drop function selectAddress
gocreate function selectAddress(@id int)
returns varchar(100)
as
begin
declare @str varchar(100)
set @str=
declare @num int
select @str=name from address where id=@id
if exists(select pid from address where id=@id)
begin
select @num=pid from address where id=@id
set @str=@str / [index].dbo.selectAddress(@num)
end
return @str
end
select [index].dbo.selectAddress(15) 结果(当然结果要你修正下)
My SQL 中怎么递归查询所有的父节点
//获取表中所有id
protected ListgetIdList(String sql, Object ... params) { return xxx } //获取该menu下的所有子节点 private List getMenuChildrenIds(long menuId) { String sql = "select menu_id from test_tb where p_id = ? " return getIdList(sql, menuId) } public void getAllChildren(long menuId, List menuIdList) { List childrenIds = getMenuChildrenIds(menuId) for (long menu_Id : childrenIds) { menuIdList.add(menu_Id) //计数 int count = geliDao.count("select count(1) from test_tb where p_id = ? ", menu_Id, status) if (count > 0) { getAllChildren(menu_Id, menuIdList) } } } // public List getMenuChildren(long menuId) { return orm.list(Menu.class, getMenuChildrenIds(menuId ).toArray()) } //执行,全找出来menuIds,放到list里面 List menuIds = new ArrayList() menuIds.add(menu.getMenuId()) getAllChildren(menu.getMenuId(), menuIds)
Mysql中怎么进行递归查询?
概念说不一定理解,给你一个例子你自己参悟。
SELECT TEACHER
FROM C AS X
WHERE UNIQUE(SELECT TEACHER
FROM C AS Y
WHERE Y.TEACHER=X.TEACHER)
mysql如何根据很多子节点查询出父节点,只要一条路径上的
select SYS_CONNECT_BY_PATH(列名,>) from 表名
start wITh 列名=0000000001
connect by prior 列名(孩子列所有的列名)=列名(父列所有的列名)
这个查出来的样式如下:
000000000001>00000000>0000
不知道是不是你想要的。
MySQL怎样做递归查询
mysql的逆袭:如何做递归层次查询
最近在做一个从oracle数据库到mysql数据库的移植,遇到一个这样的问题
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但shi,在MySQL的目前版本中还没有对应的函数!!!
换句话来说,想要用mysql实现递归查询,根本做不到!!!
可是经过我数天茶不思饭不想的刻苦琢磨,终于想到了一个合理的,适用于mysql和其他sql的解决方案。
方案一出,就秋风扫落叶之势,席卷整个dao层~~~所到之处,所有问题迎刃而解,让所有问题都不再为问题 都成为了我这个函数的炮灰而已。。。