参照:http://www.cnblogs.com/fightLonely/archive/2011/02/24/1963907.html
http://www.cnblogs.com/smailxiaobai/archive/2012/01/16/2323291.html
WITH 通常与AS连用,也叫做子查询部分。用法: 1). 可用来定义一个SQL片断,该片断会被整个SQL语句所用到。 2). 为了让SQL语句的可读性更高 3). 也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有 用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本 太高,所以可以使用WITH AS短语,则只要执行一遍即可。