麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

使用SqlServer CTE遞歸查詢處理樹、圖和層次結(jié)構(gòu)

2024-08-31 01:03:25
字體:
供稿:網(wǎng)友

CTE(Common Table Expressions)是從SQL Server 2005以后版本才有的。指定的臨時(shí)命名結(jié)果集,這些結(jié)果集稱為CTE。 與派生表類似,不存儲(chǔ)為對象,并且只在查詢期間有效。與派生表的不同之處在于,CTE 可自引用,還可在同一查詢中引用多次。使用CTE能改善代碼可讀性,且不損害其性能。

遞歸CTE是SQL SERVER 2005中重要的增強(qiáng)之一。一般我們在處理樹,圖和層次結(jié)構(gòu)的問題時(shí)需要用到遞歸查詢。

CTE的語法如下

WITH CTE AS (SELECT EmpId, ReportTo, FName FROM Employ WHERE EmpId=UNION ALLSELECT emp.EmpId, emp.ReportTo, emp.FName FROM CTE JOIN Employ as emp ON CTE.EmpId=emp.ReportTo )

遞歸CTE最少包含兩個(gè)查詢(也被稱為成員)。第一個(gè)查詢?yōu)槎c(diǎn)成員,定點(diǎn)成員只是一個(gè)返回有效表的查詢,用于遞歸的基礎(chǔ)或定位點(diǎn)。第二個(gè)查詢被稱為遞歸成員,使該查詢稱為遞歸成員的是對CTE名稱的遞歸引用是觸發(fā)。在邏輯上可以將CTE名稱的內(nèi)部應(yīng)用理解為前一個(gè)查詢的結(jié)果集。

遞歸查詢沒有顯式的遞歸終止條件,只有當(dāng)?shù)诙€(gè)遞歸查詢返回空結(jié)果集或是超出了遞歸次數(shù)的最大限制時(shí)才停止遞歸。是指遞歸次數(shù)上限的方法是使用MAXRECURION。

USE AdventureWorks; GO --Creates an infinite loop WITH cte (EmployeeID, ManagerID, Title) as (SELECT EmployeeID, ManagerID, TitleFROM HumanResources.EmployeeWHERE ManagerID IS NOT NULL UNION ALLSELECT cte.EmployeeID, cte.ManagerID, cte.TitleFROM cteJOIN HumanResources.Employee AS eON cte.ManagerID = e.EmployeeID ) --Uses MAXRECURSION to limit the recursive levels to SELECT EmployeeID, ManagerID, Title FROM cte OPTION (MAXRECURSION ); GO

以上內(nèi)容就是本文給大家介紹的使用SqlServer CTE遞歸查詢處理樹、圖和層次結(jié)構(gòu),希望大家喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产青草视频在线观看视频 | 国产呻吟| 成人一级毛片 | 国产免费美女 | 成人宗合网 | 一级黄色免费观看 | 性欧美视频在线观看 | 色婷婷一区二区三区 | 久久久久99999 | 亚洲91网| 欧美人与性禽动交精品 | 国产一级毛片高清视频完整版 | 国产视频精品在线 | 欧美熟videos肥婆 | 一道本不卡一区 | 91精品国产成人 | xxxx18韩国护士hd老师 | 亚洲国产精品久久久久久久 | 欧美视频一二区 | 免费一级毛片电影 | 一本色道久久久888 香蕉视频99 | 久久久久亚洲美女啪啪 | 成人免费一区二区三区在线观看 | 久久国产精 | 欧美性生交xxxxx久久久缅北 | 欧美久久久久久久久 | 成年免费在线视频 | 免费毛片小视频 | 精品国产视频一区二区三区 | 男女污污视频网站 | 高清视频91 | 孕妇体内谢精满日本电影 | 欧美日韩一区三区 | 久久免费精品 | 日韩剧情片| 久久蜜桃香蕉精品一区二区三区 | 成人黄色小视频网站 | 嫩草91在线 | 亚洲视频成人 | 免费观看国产视频 | 国产精品夜色视频一级区 |