SQL "WITH" 子句/语句

3

在我开始使用大量SQL语句解决我的问题之前,我可能可以通过问一个简单的问题来得到答案。我每天使用SQL Server 2005,并使用“WITH”子句执行子查询。不幸的是,我现在处于必须使用SQL Compact的情况下,而SQL Compact不允许使用“WITH”子句执行子查询。那么,在SQL Compact中,“WITH”子句的替代方法是什么?平均而言,我一次使用10个子查询。

2个回答

7
只要您的CTE(通用表达式 - 您正在使用的功能的正式名称)不是递归的,那么请记住,在最简单的形式中,
;WITH Q1 As 
(
   SELECT columns FROM Table1
)
SELECT columns FROM Q1

可以大致翻译为:

SELECT columns FROM (SELECT columns FROM Table1) Q1

请注意结尾处的“Q1”。你必须给子查询命名。你选择的名称通常并不重要,因此在这里使用简单的名称很常见,甚至只用一个字母也可以。如果有10个子查询需要串联起来,你可能需要选择更有意义的名称。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接