sqlserver查询树形结构的所有子节点
发布网友
发布时间:2022-04-08 01:07
我来回答
共4个回答
懂视网
时间:2022-04-08 05:28
新建测试表
CREATE TABLE [dbo].[test](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[parentId] [bigint] NULL,
[name] [nvarchar](50) NULL,
[jb] [int] NULL,
)
GO
插入测试数据
INSERT INTO test ( Id, parentId, name, jb) values (1,0,‘1‘,1);
INSERT INTO test ( Id, parentId, name, jb) values (2,0,‘2‘,1);
INSERT INTO test ( Id, parentId, name, jb) values (3,1,‘11‘,2);
INSERT INTO test ( Id, parentId, name, jb) values (4,1,‘12‘,2);
INSERT INTO test ( Id, parentId, name, jb) values (5,2,‘21‘,2);
INSERT INTO test ( Id, parentId, name, jb) values (6,2,‘22‘,2);
INSERT INTO test ( Id, parentId, name, jb) values (7,3,‘111‘,3);
INSERT INTO test ( Id, parentId, name, jb) values (8,3,‘112‘,3);
INSERT INTO test ( Id, parentId, name, jb) values (9,5,‘221‘,3);
INSERT INTO test ( Id, parentId, name, jb) values (10,0,‘3‘,1);
树形结构,查询分类下所有子类
;with cte as
(
select * from test where id=1
union all
select a.* from test a join cte b on a.parentId=b.Id
)
select * from cte
sql树形结果,查询所有子类
标签:
热心网友
时间:2022-04-08 02:36
用标准sql的with实现递归查询(sql2005以上肯定支持,sql2000不清楚是否支持):
with subqry(id,name,pid) as (
select id,name,pid from test1 where id = 5
union all
select test1.id,test1.name,test1.pid from test1,subqry
where test1.pid = subqry.id
)
select * from subqry;
热心网友
时间:2022-04-08 03:54
select * from tablename where pid=@pid
热心网友
时间:2022-04-08 05:29
1 SET ANSI_NULLS ON
2 GO
3 SET QUOTED_IDENTIFIER ON
4 GO
5
6 CREATE FUNCTION [dbo].[fn_GetSubCasNoTree](@CAS_NO VARCHAR(20))
7 RETURNS @CAS TABLE
8 (
9 CAS_NO VARCHAR(20) COLLATE DATABASE_DEFAULT,这个不加SQL2000会报错。
10 LEVEL INT
11 )
12
13 AS
14 BEGIN
15 DECLARE @LEVEL int
16 SET @LEVEL = 1
17 INSERT INTO @CAS SELECT @CAS_NO , @LEVEL
18 WHILE @@ROWCOUNT > 0
19 BEGIN
20 SET @LEVEL = @LEVEL + 1
21 INSERT INTO @CAS SELECT A.CAS_NO , @LEVEL
22 FROM CASN A , @CAS B
23 WHERE A.UP = B.CAS_NO and B.LEVEL = @LEVEL - 1
24 END
25 RETURN
26 END
sqlserver遍历树形目录
WITH lmenu(nav_id,nav_name,nav_parentid,level) as (SELECT nav_id,nav_name,nav_parentid,0 level FROM nav nav_parentid=0 UNION ALL SELECT A.nav_id, A.nav_name,a.nav_parentid, b.level+1 FROM gs_nav A,lmenu b where a.nav_parentid= b.nav_id and nav_id = 10 ...
sql server 2008 怎么查看各表的关系图
1、打开sqlserver management studio 2、选择“数据库”3、打开树形结构 4、点击“SCMS”,找到“数据库关系图”5、点击鼠标右键,再点击“新建关系图”然后弹出这个窗口,然后把数据表加载进去。
SqlServer树形结构的深度排序怎么实现
--深度排序显示处理 --生成每个节点的编码累计(相同当单编号法的编码)DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))DECLARE @Level int SET @Level=0 INSERT @t_Level SELECT ID,@Level,ID FROM @t WHERE PID IS NULL WHILE @@ROWCOUNT>0 BEGIN SET @Level=@Level+1 ...
pl/sql如何现实像sqlserver中的树形结构目录界面,就是能查看表视图那样...
1、用指定用户登录pl/sql。2、登录后,看左边的树。3、找到tables,然后点击。其中红框部分即为表的界面。4、找到views,然后点击。其中红框部分即为视图的界面。
树形结构的查询优化实战
常见的查询操作包括获取某个部门的所有下级部门、查询某部门的直接上级部门、以及查询所有子节点。在代码实现上,虽然第一种方式性能较高,但其SQL语句逻辑复杂,当数据量大、树形层次深时,性能问题依然存在。而第二种方式虽然容易实现,但SQL发起存在递归调用逻辑,会导致大量SQL发起,性能较低。在面对树形...
树形结构获取路径 sql C#
//查出pp的所有子节点 DataTable dt = DBHelper.QueryDataTable("select parentId from tb_knowledge where id = " + pp.pointId);//循环dt for (int j = 0; j < dt.Rows.Count; j++){ //声明一个新的节点 pathPoint ptemp = new pathPoint();//将第j个子节点的id赋值给这个新的...
筛选树形菜单时关联其父节点和子节点
死循环:查子节点时不要再去查其父节点的子节点和父节点,否则可能会出现死循环。下面贴上了所有代码仅供参考。查询菜单列表 查询菜单的父/子菜单 递归查找当前菜单的所有父菜单 递归查找当前菜单的所有子菜单 构建菜单树 基于以上后端查询树形菜单的代码就可以实现“筛选树形菜单时关联其父节点和子节点”...
超赞,老外的一种避免递归查询所有子部门的树数据表设计与实现!_百度...
通常树形结构的存储,是在子节点上存储父节点的编号来确定各节点的父子关系,例如这样的组织结构:[图片上传失败...(image-a14d87-1651886833418)]与之对应的表数据(department):[图片上传失败...(image-a73b71-1651886833418)]部门表结构(department)这样的方式很不错,可以很直观的体现各个节点之间的...
mysql怎么查询树形结构的所有上级,你这个问题是怎么解决的?求指导
size();if(size>0){ for (int i = 0; i < size; i++) { AssetType assetType = childList.get(i);List<AssetType> childs = assetType.getChildAssetType();if(childs.size()>0){ list.addAll(childs);this.findChildList(assetType, list);//递归查询节点的子节点 } ...
怎么把Excel中树形结构的数据导入SQLSERVER
把Excel通过sqlserver导入到数据库中,会形成一张表,默认你现在Excel存储就是以树型存储,只需用sqlserver查询显示出效果。这是我以前回答的问题,可解决!参考:http://zhidao.baidu.com/question/582454004