2013年12月10日

SQL WITH AS使用

摘要: 一.WITH AS的含义WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次, 阅读全文

posted @ 2013-12-10 20:00 郭长春 阅读(171) 评论(0) 推荐(0) 编辑

一个sql server递归查找的实例

摘要: with [tmpUsers] as (SELECT row_number() over (order by U.UserName) AS rowid, U.*, UP.PortalId, UP.Authorised, UP.RefreshRoles FROM dbo.UserPortals AS UP RIGHT OUTER JOIN dbo.UserRoles UR INNER JOIN dbo.Roles R ON UR.RoleID = R.RoleID RIGHT OUTER JOIN dbo.Users AS U ON UR.UserID = U.UserID ON UP.User 阅读全文

posted @ 2013-12-10 15:18 郭长春 阅读(212) 评论(0) 推荐(0) 编辑

导航