想写个函数 实现输入一个id 返回所有子id的功能
例如下表
id username parentid
1 A 0
2 B 1
3 C 2
4 D 1
5 E 2
6 F 5
输入1 后返回 2356自己写的函数如下: Public Function getNodes(ByVal pid As Integer) Dim tempDv As DataView
tempDv = tmpdt.DefaultView
tempDv.RowFilter = "pid=" & pid
Dim i As Integer
For i = 0 To tempDv.Count - 1
Dim uid As Integer
uid = tempDv.Item(i)("uid")
----> getNodes(uid) <----
tmpArr.Add(uid)
Next
Return tmpArr
End Function其中tmpdt就是一个select * from temptable 的datatable
如果不加getNodes(uid)这一句就只能查出一层的子id
我想查出所有的子id! 有不知道该怎么写!请高人指教!谢谢!
例如下表
id username parentid
1 A 0
2 B 1
3 C 2
4 D 1
5 E 2
6 F 5
输入1 后返回 2356自己写的函数如下: Public Function getNodes(ByVal pid As Integer) Dim tempDv As DataView
tempDv = tmpdt.DefaultView
tempDv.RowFilter = "pid=" & pid
Dim i As Integer
For i = 0 To tempDv.Count - 1
Dim uid As Integer
uid = tempDv.Item(i)("uid")
----> getNodes(uid) <----
tmpArr.Add(uid)
Next
Return tmpArr
End Function其中tmpdt就是一个select * from temptable 的datatable
如果不加getNodes(uid)这一句就只能查出一层的子id
我想查出所有的子id! 有不知道该怎么写!请高人指教!谢谢!
a.brc_id,
lpad('||',a.brc_level-1)||a.brc_name brc_name,
rownum sno
from asm_branch a
CONNECT BY a.brc_parentid = PRIOR a.brc_id
START WITH a.brc_id = 0
id username parentid code
1 A 0 1
2 B 1 1_2
3 C 2 1_2_3
4 D 1 1_2_4
5 E 2 1_2_5
6 F 5 1_2_5_6
如此,要取所有的ID,就非常容易了,直接拆分即可.当然,这种做法,需要你实时进行维护,数据一旦有修改,就必须维护这一列.