2011-07-12 106 views
3

在开始编写大量SQL语句以帮助解决我的问题之前,我可能会通过询问一个简单的问题来获得答案。我每天都使用SQL Server 2005,并使用“WITH”子句执行子查询。不幸的是,现在我必须使用SQL Compact,它不允许使用“WITH”子句执行子查询。 SQL Compact中“WITH”子句的替代是什么?平均而言,我一次使用10个子查询。SQL“WITH”子句/语句

回答

2

用每个子句的结果创建一个临时表;使用临时表而不是with子句。

7

只要不关你的CTE的(公共表表达式 - 你正在使用的功能的正式名称)是递归的,记得在最简单的形式,

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

大致可以翻译为:

SELECT columns FROM (SELECT columns FROM Table1) Q1 

注意'Q1'在那里。你必须给子查询一个名字。你选择的名字通常不重要,在这里简单的名字很常见 - 甚至只有单个字母。有10个子查询串起来,你可能需要选择更有意义的东西。