当前位置:首页 » 编程语言 » sql树结构

sql树结构

发布时间: 2022-06-03 14:24:06

A. 关于sql查询树结构数据的语句

方法1:
是否可以有代表层次的字段,若有,直接根据层次字段查询;
方法2:
是否存在以下假设:
非父级的dept_uid的 不可能 在 parent_uid 中出现。
如果假设成立,在查出的所有dept_uid中去掉,所有在在 parent_uid 中出现id,
剩下的就是你要的了。

B. 怎么往数据库里插入一个树形结构的表,并且用一句SQL语句将其遍历出来

ID Value PID
0 根节点 null
1 节点1 0
2 节点2 0
3 节点3 1
..........

然后查询出来 再形成树就可以了

C. sql server怎么对树形结构表的节点进行拼接

DECLARE @temp nvarchar(MAX)='',@pid bigint=3;
WHILE @pid<>0 BEGIN IF @temp=''
SELECT @temp=TypeName,@pid=ParentId
FROM [dbo].[Test]
WHERE Id=@pid;
ELSE
SELECT @temp=(TypeName+'->'+@temp),@pid=ParentId
FROM [dbo].[Test]
WHERE Id=@pid;
END;
SELECT @temp AS TypeName;

D. sql server 2005数据库中怎样建立树形结构表

树形结构表关键就是要有上一级的关联字段:
parentid
ID
.......
这样自然而然的就成为了树形结构表了。

E. 在MySql下,怎么用SQL语句遍历一个树结构

f exists (select * from dbo.sysobjects where id = object_id(N'[tb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [tb]
GO

--示例数据
create table [tb]([id] int identity(1,1),[pid] int,name varchar(20))
insert [tb] select 0,'中国'
union all select 0,'美国'
union all select 0,'加拿大'
union all select 1,'北京'
union all select 1,'上海'
union all select 1,'江苏'
union all select 6,'苏州'
union all select 7,'常熟'
union all select 6,'南京'
union all select 6,'无锡'
union all select 2,'纽约'
union all select 2,'旧金山'
go

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_id]') and xtype in (N'FN', N'IF', N'TF'))

drop function [dbo].[f_id]
GO

/*--树形数据处理

级别及排序字段

--邹建 2003-12(引用请保留此信息)--*/

/*--调用示例

--调用函数实现分级显示

select replicate('-',b.[level]*4)+a.name

from [tb] a,f_id()b

where a.[id]=b.[id]

order by b.sid
--*/
create function f_id()
returns @re table([id] int,[level] int,sid varchar(8000))
as
begin

declare @l int

set @l=0

insert @re select [id],@l,right(10000+[id],4)

from [tb] where [pid]=0

while @@rowcount>0

begin

set @l=@l+1

insert @re select a.[id],@l,b.sid+right(10000+a.[id],4)

from [tb] a,@re b

where a.[pid]=b.[id] and b.[level]=@l-1

end

return
end
go

--调用函数实现分级显示
select replicate('-',b.[level]*4)+a.name
from [tb] a,f_id()b
where a.[id]=b.[id]
order by b.sid
go

--删除测试
drop table [tb]
drop function f_id
go

/*--结果
中国
----北京
----上海
----江苏
--------苏州
------------常熟
--------南京
--------无锡
美国
----纽约
----旧金山
加拿大

--*/

F. sql里树形结构分组排序

createtableT1(thisvarchar(10),parentvarchar(10))
insertintoT1(this,parent)
values('id1',null)
,('id2',null)
,('id3','id1')
,('id4','id2')
,('id5','id3')
,('id6','id3')
,('id7','id4')
,('id8','id7')

--sqlserver的cte功能
withtree(this,parent,root,depth)as(
selectthis,parent,thisasroot,
unionall
selecta.this,a.parent,b.root,b.depth+1asdepthfromT1a,treebwherea.parent=b.this
)
selectthis,parent,root,depth
fromtree
orderbyroot,depth,this

热点内容
数控车床螺纹编程实例 发布:2025-07-01 04:46:27 浏览:421
什么是安卓品牌尖货 发布:2025-07-01 04:45:50 浏览:695
写入设备缓存 发布:2025-07-01 04:37:35 浏览:430
小鸡g4怎么连安卓 发布:2025-07-01 04:37:25 浏览:354
黄金线主图源码 发布:2025-07-01 04:35:38 浏览:297
阿里轻量服务器有固定IP吗 发布:2025-07-01 04:30:27 浏览:505
电脑什么配置要合适 发布:2025-07-01 04:24:15 浏览:165
哪个安卓恢复工具不要钱 发布:2025-07-01 04:21:54 浏览:740
sql加空格 发布:2025-07-01 04:09:38 浏览:580
如何关闭ftp防篡改 发布:2025-07-01 04:09:04 浏览:90