Ste*_*ins 0 sql t-sql sql-server oracle common-table-expression
我已经看到过几次提到Oracle WITH子句来为这样的子查询别名:
WITH myData AS (SELECT id, text FROM SomeTable)
SELECT myData from SomeOtherTable
Run Code Online (Sandbox Code Playgroud)
是否有任何版本的SQL Server支持此功能?如果没有,他们有没有特别的理由?性能?错误使用的可能性?
SQL Server 2005及以上版本.
我想补充一点,你可以叠加这些效果:
WITH A AS (
SELECT * FROM X
), B AS (
SELECT * FROM A
), C AS (
SELECT * FROM B
)
SELECT * FROM C
Run Code Online (Sandbox Code Playgroud)
你甚至可以这样做:
WITH A AS (
), B AS (
)
SELECT * FROM A INNER JOIN B ON whatever
Run Code Online (Sandbox Code Playgroud)
另请注意,WITH必须是语句中的第一个关键字,因此您经常将其视为:
;WITH A AS (
)
Run Code Online (Sandbox Code Playgroud)
这基本上终止了前面的语句(分号在T-SQL中是可选的)
| 归档时间: |
|
| 查看次数: |
3028 次 |
| 最近记录: |