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

          軟件下載吧

          當前位置:軟件下載吧 > 數(shù)據(jù)庫 > MS_SQL > SQL開發(fā)知識:SqlServer使用公用表表達式CTE實現(xiàn)無限級樹形構建

          SQL開發(fā)知識:SqlServer使用公用表表達式CTE實現(xiàn)無限級樹形構建

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

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

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

          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,技術文檔,數(shù)據(jù)庫,SQLSERVER

          相關下載

          查看所有評論+

          網(wǎng)友評論

          網(wǎng)友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 国产女人乱人伦精品一区二区| 无码囯产精品一区二区免费 | 亚洲色一区二区三区四区| 波多野结衣一区二区三区高清av| 精品无码AV一区二区三区不卡| 狠狠色婷婷久久一区二区| 精品无码中出一区二区| 免费高清在线影片一区| 精品欧美一区二区在线观看| 一区二区三区四区免费视频 | 国产成人精品日本亚洲专一区| 国产一区二区三区在线影院| 午夜视频久久久久一区| 日本免费精品一区二区三区| 加勒比精品久久一区二区三区| 麻豆AV天堂一区二区香蕉 | 动漫精品一区二区三区3d| 午夜视频一区二区| 国产在线精品一区二区在线看| 国产Av一区二区精品久久| 波多野结衣一区视频在线| 国产成人亚洲综合一区| 精品黑人一区二区三区| 亚洲日韩中文字幕一区| 无码喷水一区二区浪潮AV| 国产精品无码一区二区三区毛片 | 无码人妻精品一区二区三区不卡 | 久久久无码精品国产一区| 亚洲av无码一区二区乱子伦as| 午夜福利一区二区三区高清视频| 国产一区视频在线| 人体内射精一区二区三区| AV无码精品一区二区三区| 国产精品久久久久一区二区三区| 无码人妻精品一区二区三区9厂 | 变态调教一区二区三区| 国产在线视频一区| 日韩精品区一区二区三VR| 国产精品无码一区二区三区不卡 | 国产香蕉一区二区三区在线视频| 国产aⅴ一区二区三区|