with as 在t-sql(SQL Server 2005版)中也称为公用表达试,语法如下:
WITH [name of temporary resultset] (columns in result set)
AS ( SQL Query Definition )
with as 作用:相当于定义一个临时名称存储一个select结果集。
with as 效率:比子查询和表变量效率要高。
examples:
WITH Developers (Name,Salary)
AS
(
SELECT Name, Salary FROM Employees WHERE Position = 'Software Developer'
)
SELECT * FROM Developers
注意:公用表达式名称只能用于其之后的第一条SQL语句。公用表达式可以多次被引用(也是在其之后的第一条语句)。
另外详细使用,可以参考msdn:http://technet.microsoft.com/zh-cn/library/ms175972(v=sql.90)
WITH [name of temporary resultset] (columns in result set)
AS ( SQL Query Definition )
with as 作用:相当于定义一个临时名称存储一个select结果集。
with as 效率:比子查询和表变量效率要高。
examples:
WITH Developers (Name,Salary)
AS
(
SELECT Name, Salary FROM Employees WHERE Position = 'Software Developer'
)
SELECT * FROM Developers
注意:公用表达式名称只能用于其之后的第一条SQL语句。公用表达式可以多次被引用(也是在其之后的第一条语句)。
另外详细使用,可以参考msdn:http://technet.microsoft.com/zh-cn/library/ms175972(v=sql.90)