SQL WITH用法

with a as (select * from test)

select * from a;

其实就是把一大堆重复用到的SQL语句放在with as 里面,取一个别名,后面的查询就可以用它

这样对于大批量的SQL语句起到一个优化的作用,而且清楚明了

也可以再需要递归的时候调用他 例如TreeView绑树的时候

    ;WITH SitesTree(Id,SiteKey,Name,ParentID,IsLocked)
    AS
    (
      select Id,SiteKey,Name,ParentID,IsLocked from dbo.Navigation_SitesTree
      WHERE ParentID = 0
      UNION ALL
      SELECT H.Id,H.SiteKey,H.Name,H.ParentID,H.IsLocked FROM dbo.Navigation_SitesTree H
      INNER JOIN SitesTree V ON H.ParentID = V.Id
    )
    
    select a.Id,a.SiteKey,a.Name,a.ParentID,a.IsLocked,b.Type from SitesTree a inner join
    dbo.Traffic_Sites b on a.SiteKey=b.SiteKey
    order by a.ParentID,b.[Type],a.Id
    原文作者:SQL
    原文地址: https://blog.csdn.net/tanxd137/article/details/6694138
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞