下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > MS_SQL > SQL開發知識:SqlServer使用公用表表達式CTE實現無限級樹形構建

          SQL開發知識:SqlServer使用公用表表達式CTE實現無限級樹形構建

          時間:2024-03-13 13:57作者:下載吧人氣:25

          SQL Server 2005開始,我們可以直接通過CTE來支持遞歸查詢,CTE即公用表表達式

          公用表表達式(CTE),是一個在查詢中定義的臨時命名結果集將在from子句中使用它。每個CTE僅被定義一次(但在其作用域內可以被引用任意次),并且在該查詢生存期間將一直生存。可以使用CTE來執行遞歸操作。

          DECLARE @Level INT=3

          ;WITH cte_parent(CategoryID,CategoryName,ParentCategoryID,Level)
          AS
          (
          SELECT category_id,category_name,parent_category_id,1 AS Level
          FROM TianShenLogistic.dbo.ProductCategory WITH(NOLOCK)
          WHERE category_id IN
          (
          SELECT category_id
          FROM TianShenLogistic.dbo.ProductCategory
          WHERE parent_category_id=0
          )
          UNION ALL
          SELECT b.category_id,b.category_name,b.parent_category_id,a.Level+1 AS Level
          FROM TianShenLogistic.dbo.ProductCategory b
          INNER JOIN cte_parent a
          ON a.CategoryID = b.parent_category_id
          )

          SELECT
          CategoryID AS value,
          CategoryName as label,
          ParentCategoryID As parentId,
          Level
          FROM cte_parent WHERE Level <=@Level;
          public static List<LogisticsCategoryTreeEntity> GetLogisticsCategoryByParent(int? level)
          {
          if (level < 1) return null;

          var dataResult = CategoryDA.GetLogisticsCategoryByParent(level);
          var firstlevel = dataResult.Where(d => d.level == 1).ToList();
          BuildCategory(dataResult, firstlevel);
          return firstlevel;
          }

          private static void BuildCategory(List<LogisticsCategoryTreeEntity> allCategoryList, List<LogisticsCategoryTreeEntity> categoryList)
          {
          foreach (var category in categoryList)
          {
          var subCategoryList = allCategoryList.Where(c => c.parentId == category.value).ToList();
          if (subCategoryList.Count > 0)
          {
          if (category.children == null) category.children = new List<LogisticsCategoryTreeEntity>();
          category.children.AddRange(subCategoryList);
          BuildCategory(allCategoryList, category.children);
          }
          }
          }

          標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 一区二区三区中文| 成人乱码一区二区三区av| 国产一区二区在线观看app| 国产精品视频一区麻豆| 国产一区二区三区四| 国产日韩一区二区三区在线播放| 久久综合一区二区无码| 精品一区狼人国产在线| 无码av免费一区二区三区试看| 国产一区二区三区乱码在线观看| 国产午夜精品免费一区二区三区| 精品国产免费一区二区| 中文乱码字幕高清一区二区| 中文字幕日本精品一区二区三区 | 日韩精品人妻av一区二区三区 | 午夜DV内射一区二区| 成人影片一区免费观看| 中文字幕在线观看一区| 国产亚洲一区区二区在线| 中文字幕久久久久一区| 99精品国产一区二区三区| 91精品一区国产高清在线| 变态拳头交视频一区二区 | 手机福利视频一区二区| 国精产品一区一区三区MBA下载 | 无码精品人妻一区二区三区人妻斩 | 国产午夜精品一区理论片| 国产在线一区二区在线视频 | 国产福利一区视频| 国产伦精品一区二区三区四区| 国产福利在线观看一区二区| 99精品国产一区二区三区不卡| 久久久精品人妻一区二区三区| 亚洲av无码片vr一区二区三区| 日韩一区在线视频| 亚洲日本久久一区二区va| 内射女校花一区二区三区| 国产丝袜无码一区二区视频| 亚洲天堂一区在线| 韩国福利一区二区三区高清视频| 精品一区二区三区在线观看l |