SQL Server 2005 - SQL "WITH" 子句/语句



在我开始使用大量SQL语句来帮助解决我的问题之前,我可以通过问一个简单的问题来得到答案。我每天使用SQL Server 2005,并使用"WITH"子句执行子查询。不幸的是,我现在的情况是,我必须使用SQL紧凑,它不允许使用"WITH"子句来执行子查询。SQL Compact中"WITH"子句的替代品是什么?我平均一次使用10个子查询。

只要您的CTE(公共表表达式-您正在使用的功能的正式名称)中没有一个是递归的,请记住,在最简单的形式中,

;WITH Q1 As 
(
   SELECT columns FROM Table1
)
SELECT columns FROM Q1

可以大致翻译为:

SELECT columns FROM (SELECT columns FROM Table1) Q1

注意末尾的'Q1'。您必须为子查询指定一个名称。你选择的名字通常并不重要,所以简单的名字在这里很常见——甚至只是一个字母。有10个子查询串在一起,您可能需要选择更有意义的东西。

用每个with子句的结果创建一个临时表;使用临时表代替with子句。

最新更新