婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用SqlServer CTE遞歸查詢處理樹、圖和層次結構

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

熱門標簽:地圖標注可以編輯地名嗎 地圖標注跑線下市場 濮陽清豐400開頭的電話申請 真3地圖標注 疫情時期電話機器人 樂昌電話機器人 南京怎么申請400這種電話 南通智能外呼系統怎么樣 臺灣外呼系統軟件

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

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

CTE的語法如下

 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。

 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遞歸查詢處理樹、圖和層次結構,希望大家喜歡。

您可能感興趣的文章:
  • 在sqlserver中如何使用CTE解決復雜查詢問題
  • SQLSERVER2008中CTE的Split與CLR的性能比較
  • 使用SQLSERVER 2005/2008 遞歸CTE查詢樹型結構的方法
  • SQLSERVER2005 中樹形數據的遞歸查詢
  • sqlserver另類非遞歸的無限級分類(存儲過程版)
  • SqlServer使用公用表表達式(CTE)實現無限級樹形構建

標簽:福建 通遼 阿里 陜西 河北 南京 廣安 馬鞍山

巨人網絡通訊聲明:本文標題《使用SqlServer CTE遞歸查詢處理樹、圖和層次結構》,本文關鍵詞  使用,SqlServer,CTE,遞歸,查詢,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用SqlServer CTE遞歸查詢處理樹、圖和層次結構》相關的同類信息!
  • 本頁收集關于使用SqlServer CTE遞歸查詢處理樹、圖和層次結構的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 肇源县| 扎赉特旗| 南溪县| 华阴市| 尤溪县| 中阳县| 仪陇县| 沽源县| 行唐县| 永泰县| 龙口市| 波密县| 尉犁县| 永康市| 古交市| 溧水县| 湖州市| 紫金县| 通道| 朝阳区| 班戈县| 双江| 黄陵县| 个旧市| 三亚市| 玉树县| 大新县| 毕节市| 榕江县| 延安市| 故城县| 双城市| 饶河县| 正宁县| 当雄县| 元氏县| 阿克苏市| 东乌珠穆沁旗| 新泰市| 泽州县| 沧州市|