當前位置:首頁 » 編程語言 » sql樹

sql樹

發布時間: 2022-04-22 02:23:01

① 關於sql查詢樹結構數據的語句

方法1:
是否可以有代表層次的欄位,若有,直接根據層次欄位查詢;
方法2:
是否存在以下假設:
非父級的dept_uid的 不可能 在 parent_uid 中出現。
如果假設成立,在查出的所有dept_uid中去掉,所有在在 parent_uid 中出現id,
剩下的就是你要的了。

② sql 樹型結構查詢

select Cast(Code as varchar) as Code,'1級'=case len(Code) when 1 then Name else '' end ,'2級'=case len(Code) when 3 then Name else '' end,'3級'=case len(Code) when 5 then Name else '' end from tb order by code如果級次 固定為3級別 編碼規則為 1-2-2則可以這樣寫假如你的級次不固定 你可以根據你的編碼規則,從編碼長度 得到 目前編碼位於幾級一共有幾級。在級次不固定的情況下 必須通過 程序 或存儲過程 構造類似的字元串

③ 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

④ sql怎麼實現樹查詢

CREATE TABLE T (CID VARCHAR(5),PID VARCHAR(5),CNAME VARCHAR(20))
GO
INSERT INTO T VALUES ('1','0','董事長')
INSERT INTO T VALUES ('2','1','CEO')
INSERT INTO T VALUES ('3','2','銷售經理')
INSERT INTO T VALUES ('4','2','IT經理')
INSERT INTO T VALUES ('5','2','運營經理')
INSERT INTO T VALUES ('6','3','銷售主管')
INSERT INTO T VALUES ('7','4','IT主管')
INSERT INTO T VALUES ('8','5','運營主管 ')
INSERT INTO T VALUES ('9','6','業務員')
INSERT INTO T VALUES ('10','7','程序員')
INSERT INTO T VALUES ('11','8','運營員')
GO

CREATE FUNCTION F(@CID INT)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @R VARCHAR(50)
SELECT @R=PID+'.'+CID FROM T WHERE CID=@CID
WHILE EXISTS(SELECT 1 FROM T WHERE CID=(SELECT PID FROM T WHERE CID=@CID))
BEGIN
SELECT @CID=PID FROM T WHERE CID=@CID
SELECT @R=PID+'.'+@R FROM T WHERE CID=@CID
END
RETURN @R
END
GO

SELECT * FROM T WHERE DBO.F(CID) LIKE '%.2.%'
GO
DROP TABLE T
DROP FUNCTION F

提供個大概的思路,具體你還可以優化,把 LIKE裡面的2換成其他CID既可查詢對應的下屬信息

⑤ 急求設計SQL語言的語法樹

select * from 表名 for xml

以下是詳細介紹:

FOR 子句

FOR 子句用於指定 BROWSE 或 XML 選項(BROWSE 和 XML 是不相關的選項)。
語法

[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ]
}
]
參數

BROWSE

指定當查看 DB-Library 瀏覽模式游標中的數據時允許更新。如果表包含時間戳列(用 timestamp 數據類型定義的列),表有唯一索引且 FOR BROWSE 選項在 SELECT 語句的最後發送到 SQL Server,則可以在應用程序中瀏覽該表。

說明 在含有 FOR BROWSE 選項的 SELECT 語句中無法使用 <lock_hint> HOLDLOCK。

FOR BROWSE 選項不能出現在用 UNION 運算符聯接的 SELECT 語句中。

XML

指定查詢結果將作為 XML 文檔返回。必須指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。

RAW

獲得查詢結果並將結果集內的各行轉換為 XML 元素,用一般標識符 <row /> 作為元素標記。

測試:
select top 2 圖書編號=BookNo,圖書名稱=BookName from sys_books as圖書信息 FOR XML raw

結果:
<row 圖書編號="B001" 圖書名稱="1"/><row 圖書編號="B002" 圖書名稱="體育報(上海)"/>

AUTO

以簡單的嵌套 XML 樹返回查詢結果。在 FROM 子句內,每個在 SELECT 子句中至少有一列被列出的表都表示為一個 XML 元素。SELECT 子句中列出的列映射到適當的元素特性。
測試:
select top 2 圖書編號=BookNo,圖書名稱=BookName from sys_books as 圖書信息 FOR XML auto

結果:
<圖書信息 圖書編號="B001" 圖書名稱="1"/><圖書信息 圖書編號="B002" 圖書名稱="體育報(上海)"/>

EXPLICIT

指定顯式定義所得到的 XML 樹的形狀。使用此種模式,要求以一種特定的方式編寫查詢,以便顯式指定有關期望的嵌套的附加信息。

XMLDATA

返回架構,但不將根元素添加到結果中。如果指定了 XMLDATA,它將被追加到文檔上。

ELEMENTS

指定列作為子元素返回。否則,列將映射到 XML 特性。

測試:
select top 2 圖書編號=BookNo,圖書名稱=BookName from sys_books as 圖書信息 FOR XML AUTO,ELEMENTS

結果:
<圖書信息><圖書編號>B001</圖書編號><圖書名稱>1</圖書名稱></圖書信息><圖書信息><圖書編號>B002</圖書編號><圖書名稱>體育報(上海)</圖書名稱></圖書信息>

NARY BASE64

指定查詢返回二進制 base64 編碼格式的二進制數據。使用 RAW 和 EXPLICIT 模式檢索二進制數據時,必須指定該選項。這是 AUTO 模式中的默認值。

⑥ sql 生成樹 高手進!

改了下,試試
update t1 set parentid= t2.主鍵 from table1 t1
inner join table1 t2 on left(t1.編號,1,len(t1.編號)-CHARINDEX ('.',REVERSE(t1.編號)))=t2.編號
REVERSE是顛倒字元串函數
CHARINDEX 是查出現某個子字元串的起始位置

⑦ 在SQl中,如何通過一個欄位的標識,建立出一個樹

比如表A有兩個欄位id(主鍵),parentid(標識);樹的根節點就是

select*fromAwhereparentidisnull;


下一級就是

select*fromAwhereparentidin();

再下一級以此類推!

⑧ 求高手幫忙sql寫法:樹節點放一個表中,怎麼用一條語句查詢一個節點及對應的所有父節點信息。

建議使用遞歸,
oracl語法示例如下、
CREATE TABLE TBL_TEST
(
ID NUMBER, --主鍵
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0 --------父節點主鍵
);
插入測試數據:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
從Root往樹末梢遞歸
select * from TBL_TEST
start with id=1
connect by prior id = pid
從末梢往樹ROOT遞歸
select * from TBL_TEST
start with id=5
connect by prior pid = id
SQL server 2005語法示例如下、
CREATE TABLE TBL_TEST
(
ID int,
NAME VARCHAR(100),
PID int DEFAULT 0
);

插入測試數據:

INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');

select * from TBL_TEST

--從Root往樹末梢遞歸

with cte as
(select *,0 as TLevel from TBL_TEST where ID=1
union all
select t1.*,t2.TLevel+1 from TBL_TEST t1 inner join cte t2 on t1.PID=t2.ID)
select * from cte

--從末梢往樹ROOT遞歸

with cte as
(select *,0 as TLevel from TBL_TEST where ID=5
union all
select t1.*,t2.TLevel+1 from TBL_TEST t1 inner join cte t2 on t1.ID=t2.PID)
select * from cte

⑨ 如何用sql語句實現樹形的資料庫表查詢

如果樹的層數固定就可以用語句查詢,但效率比較低。例如你說的三層:
select id,v2.name+name from t1 inner join
(select id,v1.name+name as name from t1 inner join
(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id

⑩ 如何用SQL解決樹查詢問題,急!!!

oracle中的select語句可以用START WITH...CONNECT BY PRIOR子句實現遞歸查詢,connect by 是結構化查詢中用到的,其基本語法是:

select * from tablename start with cond1
connect by prior cond2
where cond3;

簡單說來是將一個樹狀結構存儲在一張表裡,比如一個表中存在兩個欄位:
id,parentid。那麼通過表示每一條記錄的parent是誰,就可以形成一個樹狀結構。

用上述語法的查詢可以取得這棵樹的所有記錄。

其中COND1是根結點的限定語句,當然可以放寬限定條件,以取得多個根結點,實際就是多棵樹。

COND2是連接條件,其中用PRIOR表示上一條記錄,比如 CONNECT BY PRIOR ID=PRAENTID就是說上一條記錄的ID是本條記錄的PRAENTID,即本記錄的父親是上一條記錄。

COND3是過濾條件,用於對返回的所有記錄進行過濾。

熱點內容
落櫻小屋哪裡下載安卓 發布:2025-01-27 12:35:13 瀏覽:71
微信伺服器IP跳轉 發布:2025-01-27 12:26:54 瀏覽:73
oracle自動備份腳本linux 發布:2025-01-27 12:21:40 瀏覽:936
pop伺服器密碼怎麼填 發布:2025-01-27 12:20:02 瀏覽:968
oraclesqlnumber 發布:2025-01-27 12:04:22 瀏覽:849
如何看三才配置數理暗示力 發布:2025-01-27 12:04:15 瀏覽:811
我的世界離線2b2t的伺服器 發布:2025-01-27 11:51:25 瀏覽:144
網站被異常篡改訪問有風險 發布:2025-01-27 11:50:01 瀏覽:431
光遇國際服腳本全部圖 發布:2025-01-27 11:47:40 瀏覽:139
ios資源加密 發布:2025-01-27 11:36:33 瀏覽:816