T-SQL 遞迴查詢示例
1. 資料庫表建立
-- Create an Employee table. CREATE TABLE dbo.MyEmployees ( EmployeeID smallint NOT NULL, FirstName nvarchar(30) NOT NULL, LastName nvarchar(40) NOT NULL, Title nvarchar(50) NOT NULL, DeptID smallint NOT NULL, ManagerID int NULL, CONSTRAINT PK_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID ASC) ); -- Populate the table with values. INSERT INTO dbo.MyEmployees VALUES (1, N'Ken', N'Sánchez', N'Chief Executive Officer',16,NULL) ,(273, N'Brian', N'Welcker', N'Vice President of Sales',3,1) ,(274, N'Stephen', N'Jiang', N'North American Sales Manager',3,273) ,(275, N'Michael', N'Blythe', N'Sales Representative',3,274) ,(276, N'Linda', N'Mitchell', N'Sales Representative',3,274) ,(285, N'Syed', N'Abbas', N'Pacific Sales Manager',3,273) ,(286, N'Lynn', N'Tsoflias', N'Sales Representative',3,285) ,(16, N'David',N'Bradley', N'Marketing Manager', 4, 273) ,(23, N'Mary', N'Gibson', N'Marketing Specialist', 4, 16);
2.查詢語句
SELECT * FROM myemployees
;WITH CTE AS(
SELECT
E.EmployeeID AS baseEmployeeID,
E.EmployeeID,
E.ManagerID,
0 AS level
FROM MyEmployees E
UNION All
SELECT
T.baseEmployeeID,
P.EmployeeID,
P.ManagerID,
T.level + 1
FROM CTE T
INNER JOIN MyEmployees P
ON T.ManagerID = P.EmployeeID
)
SELECT * FROM CTE
--WHERE managerId = 1
ORDER BY CTE.baseEmployeeID, level
相關推薦
T-SQL 遞迴查詢示例
1. 資料庫表建立 -- Create an Employee table. CREATE TABLE dbo.MyEmployees ( EmployeeID smallint NOT NULL, FirstName nvarchar(30) NOT NULL,
[SQL]T-Sql 遞歸查詢(給定節點查所有父節點、所有子節點的方法)
select IT rod nbsp pos UC with var 數據 -- 查找所有父節點with tab as( select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=31
sql遞迴查詢子類
平時工作中我們會遇到主從層次關係的結構資料,我們需要把資料取出來並且提現出層級就像樹形結構一樣,比如這樣的結構: 資料庫表結構如下,有個parent_id和sub_id,就是把兩者的關係儲存起來。 id為768的下面有769,770,771,772,780,781資料,同時
SQL 遞迴查詢(根據指定的節點向上獲取所有父節點,向下獲取所有子節點)
WITH TEMP AS ( SELECT * FROM t_sys_org WHERE ID='0' --表的ID UNION ALL SELECT T0.* FROM TEMP,t_sys_org T0 WHERE TEMP.ID=T0.parent_id
sql遞迴查詢所有子單位
with org(OrgID,OrgName,ParentID,[level]) as (select orgid,orgname,parentid,0 as [level] from SYSOrgwhere orgname like ''%'+ @DW +'%''unio
【Sql Server】SQL SERVER 遞迴查詢
SQL SERVER 2005之前的版本只能用函式方法實現,SQL SERVER 2005之後新增了CTE功能,可以利用CTE實現遞迴查詢; CTE:公用表示式Common Table Expression 是SQL SERVER 2005版本之後引入的一個特性; #填充測試資料 1、
MyBatis自身集合巢狀,遞迴查詢目錄樹(適用於MySQL、ORACLE等資料庫,遞迴程式碼都寫在XML中,通過SQL完成)
JAVA程式碼實現(連結):MySql、Oracle(通用方法)遞迴查詢生成檔案目錄樹(JAVA實現 遞迴過程中不訪問資料庫,遞迴之前只訪問兩次 進行遞迴前資料準備) 以下是XML中實現檔案樹的查詢、遞迴 場景:根據交易編碼,查詢檔案樹 檔案、資料夾都存放TRADER_
SQL Server 2008中的CTE遞迴查詢得到一棵樹
with CTE as ( -->Begin 一個定位點成員 select ID, Name,Parent,cast(Name as nvarchar(max)) as TE, ROW_NUMBER()over(order by getdat
SQL SERVER 進行遞迴查詢
有如下資料表 假如我們要查詢ID為003的資料的所有子節點我們可以使用CTE 遞迴查詢完成... if OBJECT_ID('tb','N') is not null drop table tb; create table tb(id varchar(3) ,
Sql遞迴(用with 實現遞迴查詢)
1.遞迴原理(摘自網上) 遞迴CTE最少包含兩個查詢(也被稱為成員)。第一個查詢為定點成員,定點成員只是一個返回有效表的查詢,用於遞迴的基礎或定位點。第二個查詢被稱為遞迴成員,使該查詢稱為遞迴成
SQL server 樹形遞迴查詢
1,原始查詢 原始表格查詢: select * from dbo.T_DeptInfo; 原始表格查詢結果: 2,遞迴查詢 -- with 一個臨時表(括號裡包括的是你要查詢的列名) with tem_table(dept_id,par
SQL Server 中的 CTE 遞迴查詢
name senior level --------------------------------------------
SQL 語句遞迴查詢 With AS 查詢所有子節點
create table #EnterPrise ( Department nvarchar(50),--部門名稱 ParentDept nvarchar(50),--上級部門 DepartManage nvarchar(30)--部門經理 ) insert into #EnterPri
DB2通過SQL實現遞迴查詢 (根據子機構查詢機構所屬樹)
create table MAIN_NODE ( MLA_ID INTEGER not null, MLA_ROOTID INTEGER, MLA_PARENTID
sql語句遞迴查詢(start with)
寫程式碼時碰到要弄清楚Oracle的role之間的傳遞關係,就是有role A的話,可以通過grant A to B,把A賦予給B,又通過grant B to C .那我想知道所有role中,有哪些role具有A的許可權.上網一查發現有個遞迴查詢,不過都講的不是
一句SQL實現MYSQL的遞迴查詢
ID 父ID 父到子之間級數 父到子路徑 ------ ------ ------------ --------------- 1 0 0 ,0 2 1 1
Oracle 遞迴sql,mybatis的遞迴查詢,與儲存過程呼叫
Oralce 遞迴sql 一、查詢所有子節點 SELECT * FROM district ST
Sql遞歸查詢
優化 value 內容 說明 其他 結構 菜單 等價 path /*Sql遞歸查詢*/ /* 實際就是把所有樹的節點查找出來 Oracle的一個表中也可以保存樹形結構信息,用start with...connect by等關鍵字 eg:創建
怎樣用SQL遞迴求各個Folder的檔案數
-- 資料準備 CREATE TABLE [dbo].[ContentObject] (Id NCHAR(10), Name NVARCHAR(500),ParentId NCHAR(10),Type NVARCHAR(50)); INSERT INTO [dbo].[ContentObject]
mybatis 實現遞迴查詢出樹結構節點
mybatis 實現遞迴查詢出樹結構節點 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.