关于sqlserver下无限多级别分类查询解决办法
在开发中,我们经常会遇到无限分类的问题,最常见的就是一些无限目录等。如果你不熟悉SQL Server或者SQL语言,那将是一件非常困难的事情。也许最后能实现类似的功能,但可能耗时较长,效率也不理想。下面这个例子可能会给你一个启发。
/* * *创建表* * */
创建表[DBO]。[Tree](
[ID][int]identity(1,1) not null,
[PID] [int] null,
。
/* * * *创建自定义函数* * */
createfunctiondbo . fgettreetable
(
@ ID int = null
)
returns @ Tab table(ID int,PID int,Name varchar(10),Levint)-返回结果的表结构
as
begin
declare @ Levint
Set @ Lev = 0
while @ Lev = 0或@ @ rowcount > 0 @Lev From Tree Where (@Lev=1且((PID=@ID) or (@ID为null且PID为null))or(PID in(Select ID From @ Tab Where Lev = @ Lev-1))[/Br/]order by ID[/Br/]end[/Br/]return[/Br/]end[/Br/]可以通过直接查询Select * From dbo . fgettreetable(null)输入所有记录。
0条评论