SQL Server是否支持类似Oracle的WITH子句?
问题描述:
我见过的甲骨文提到与第几次在这里混叠像这样的子查询:SQL Server是否支持类似Oracle的WITH子句?
WITH myData AS (SELECT id, text FROM SomeTable)
SELECT myData from SomeOtherTable
是否的SQL Server支持该版本的任何?如果不是,他们有没有特别的原因?性能?不正确使用的可能性?
答
SQL Server 2005及更高版本。
我想补充一点,你可以叠加这些效果好:
WITH A AS (
SELECT * FROM X
), B AS (
SELECT * FROM A
), C AS (
SELECT * FROM B
)
SELECT * FROM C
你甚至可以这样做:
WITH A AS (
), B AS (
)
SELECT * FROM A INNER JOIN B ON whatever
也要注意,使用必须在一份声明中第一个关键字,那么你经常看到它写成:
;WITH A AS (
)
基本上终止前面的语句(分号是k在T-SQL中可选)
+0
酷,不知道这个! – harpo 2010-07-08 03:54:17
顺便说一句,请注意,这不像“ANSI-SQL-like”那样“像Oracle一样”。 – 2010-07-08 04:00:43
真的吗?你会碰巧知道在哪里可以找到实际的ANSI-SQL标准的副本吗? – 2010-07-10 19:06:21