A. 建立一個樹形結構的sql表 3實現的功能
主要是要有ID,PID兩個欄位,下面是我用的一個表,僅供參考:
CREATE TABLE [dbo].[Sys_Menu](
[ID] [int] NOT NULL,
[Code] [varchar](50) NOT NULL,
[PID] [int] NOT NULL,
[Name] [nvarchar](50) NULL,
[Url] [varchar](100) NULL,
[STATE] [bit] NOT NULL,
[IsSelected] [bit] NULL
) ON [PRIMARY]
GO
B. sql server 2005資料庫中怎樣建立樹形結構表
樹形結構表關鍵就是要有上一級的關聯欄位:
parentid
ID
.......
這樣自然而然的就成為了樹形結構表了。
C. 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
D. 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;
E. 關於SQL查詢樹結構數據的語句
方法1:
是否可以有代表層次的欄位,若有,直接根據層次欄位查詢;
方法2:
是否存在以下假設:
非父級的dept_uid的 不可能 在 parent_uid 中出現。
如果假設成立,在查出的所有dept_uid中去掉,所有在在 parent_uid 中出現id,
剩下的就是你要的了。
F. sql server樹形結構表統計每一級樹形下的所有子集數,
有如下數據表
create table tb(id varchar(3) , pid varchar(3) , name varchar(10));
insert into tb values('001' , null , '廣東省');
insert into tb values('002' , '001' , '廣州市');
insert into tb values('003' , '001' , '深圳市') ;
insert into tb values('004' , '002' , '天河區') ;
insert into tb values('005' , '003' , '羅湖區');
insert into tb values('006' , '003' , '福田區') ;
insert into tb values('007' , '003' , '寶安區') ;
insert into tb values('008' , '007' , '西鄉鎮') ;
insert into tb values('009' , '007' , '龍華鎮');
insert into tb values('010' , '007' , '松崗鎮');
假如我們要查詢ID為003的數據的所有子節點我們可以使用CTE 遞歸查詢完成...
with cte as
(
select a.id,a.name,a.pid from tb a where id='003'
union all
select k.id,k.name,k.pid from tb k inner join cte c on c.id = k.pid
)select * from cte
查詢結果如下:
003 深圳市 001
005 羅湖區 003
006 福田區 003
007 寶安區 003
008 西鄉鎮 007
009 龍華鎮 007
010 松崗鎮 007
G. 求教oracle怎麼用一個SQL查詢多層樹形結構
select * from 表 m start with m.id=1 connect by m.parent=prior m.id;
H. 怎樣在 MySQL 表中存儲樹形結構數據
您好,很高興為您解答。
一般比較普遍的就是四種方法:(具體見 SQL Anti-patterns這本書)
Adjacency List:每一條記錄存parent_id
Path Enumerations:每一條記錄存整個tree path經過的node枚舉
Nested Sets:每一條記錄存 nleft 和 nright
Closure Table:維護一個表,所有的tree path作為記錄進行保存。
各種方法的常用操作代價見下圖
如若滿意,請點擊右側【採納回答】,如若還有問題,請點擊【追問】
希望我的回答對您有所幫助,望採納!
~ O(∩_∩)O~
I. oracle sql語句 顯示樹形結構
設計的表結構不合理,怎麼能用對象設計表呢。組多兩個欄位, people_id,parent_id
只關心他們的層級關系即可。
查詢出來是
select t.people_id, t.parent_id from family t
start with t.people_id is null connect by nocycle prior t.people_id=t.parent_id。
真多多層級查詢毫無壓力。另外 對 函數的理解多參考下語法用途。nocycle 防止死循環。可以舉一反三,自己試一下 start with 中 people_id 與 parent_id 互換位置,會有額外收獲,多動手。祝你oracle 之旅愉快~
J. 求一條sql語句,樹形結構
最後SQL語句返回的結果是什麼?看一下以下語句行不行?
WITHAAS(SELECTpk_compID,Name,pk_fathercompPIDFROMcompany
UNIONALL
SELECTpk_dept,DeptName,pk_compFROMdept),
BAS
(SELECTCAST(NameASVARCHAR(200))Name,PID,IDFROMAWHEREPID=0
UNIONALL
SELECTCAST(B.Name+''+A.NameASVARCHAR(200)),A.PID,A.ID
FROMBJOINAONB.ID=A.PID)
SELECTNameFROMB