激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 使用SqlServer CTE遞歸查詢處理樹、圖和層次結構

使用SqlServer CTE遞歸查詢處理樹、圖和層次結構

2020-04-27 15:14MSSQL教程網 Sql Server

遞歸CTE是SQL SERVER 2005中重要的增強之一。一般我們在處理樹,圖和層次結構的問題時需要用到遞歸查詢。本文給大家詳解使用sqlserver cte遞歸查詢出來樹、圖和層次結構,本文介紹的非常詳細,感興趣的朋友一起看看吧

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

遞歸CTE是SQL SERVER 2005中重要的增強之一。一般我們在處理樹,圖和層次結構的問題時需要用到遞歸查詢。

CTE的語法如下

?
1
2
3
4
5
6
WITH CTE AS
(
  SELECT EmpId, ReportTo, FName FROM Employ WHERE EmpId=
  UNION ALL
  SELECT emp.EmpId, emp.ReportTo, emp.FName FROM CTE JOIN Employ as emp ON CTE.EmpId=emp.ReportTo
)

 

遞歸CTE最少包含兩個查詢(也被稱為成員)。第一個查詢為定點成員,定點成員只是一個返回有效表的查詢,用于遞歸的基礎或定位點。第二個查詢被稱為遞歸成員,使該查詢稱為遞歸成員的是對CTE名稱的遞歸引用是觸發。在邏輯上可以將CTE名稱的內部應用理解為前一個查詢的結果集。

遞歸查詢沒有顯式的遞歸終止條件,只有當第二個遞歸查詢返回空結果集或是超出了遞歸次數的最大限制時才停止遞歸。是指遞歸次數上限的方法是使用MAXRECURION。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
USE AdventureWorks;
GO
--Creates an infinite loop
WITH cte (EmployeeID, ManagerID, Title) as
(
  SELECT EmployeeID, ManagerID, Title
  FROM HumanResources.Employee
  WHERE ManagerID IS NOT NULL
 UNION ALL
  SELECT cte.EmployeeID, cte.ManagerID, cte.Title
  FROM cte
  JOIN HumanResources.Employee AS e
    ON cte.ManagerID = e.EmployeeID
)
--Uses MAXRECURSION to limit the recursive levels to
SELECT EmployeeID, ManagerID, Title
FROM cte
OPTION (MAXRECURSION );
GO

以上內容就是本文給大家介紹的使用SqlServer CTE遞歸查詢處理樹、圖和層次結構,希望大家喜歡。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产二区三区在线播放 | 国产精品一二三区在线观看 | 久啪视频 | 4p嗯啊巨肉寝室调教男男视频 | 国产一区二区三区撒尿在线 | 99亚洲伊人久久精品影院红桃 | 成人黄色网战 | 黄色免费av网站 | 日本精品久久久久 | 免费国产一级淫片 | 国产精品亚洲欧美 | 欧美一级淫片007 | 午夜精品福利视频 | 国产xxxx岁13xxxxhd | 性高湖久久久久久久久aaaaa | 在线免费观看日韩视频 | 国产精品亚洲三区 | 麻豆一区二区99久久久久 | 国产一级aa大片毛片 | 免费高清一级欧美片在线观看 | 欧美一级黄视频 | 国产成人精品免费视频大全最热 | 污污黄 | 欧美成人免费电影 | 亚洲一区二区中文字幕在线观看 | 成人毛片100部 | 午夜视频久久久 | 久久久久电影网站 | 久久艹精品| 国产精品久久久久久久久久久久久久久 | 热99视频| 在线中文字幕亚洲 | 国产91一区二区三区 | 成人黄色短视频在线观看 | 黄色一级视频 | 亚洲精品av在线 | 国产精品一区在线看 | 久久9999久久| www.射| 色婷婷一区二区三区 | 国产黄色一区二区 |