SQL WITH用法

来源:互联网 发布:python的for循环 编辑:程序博客网 时间:2024/05/29 13:36

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


原创粉丝点击