from子句中select查询的优点

时间:2012-08-11 14:50:09

标签: sql-server

在from子句中使用select子句比使用普通select子句有什么好处?对于前。

select name, age, address from emp where 
 empid = 12.

以上查询优于上述查询的优势是什么。

 select A.name, A.age, A.address from (select
  * from emp where empid = 12) as A.

内部查询创建临时视图,并从该结果中选择第一个查询中的字段。对 ?。但是,此问题顶部提到的查询也可用于获得相同的结果。

有什么好处?感谢。

1 个答案:

答案 0 :(得分:5)

此技术的一种方法可用于在外部查询中不希望显示的内部查询中派生结果。一个简单的例子,我想看到每个家庭中最老的人,这是一种方法:

SELECT name, age, address FROM
( 
  SELECT name, age, address, 
    rn = ROW_NUMBER() OVER (PARTITION BY address ORDER BY age DESC)
  FROM dbo.emp
) AS x
WHERE rn = 1;

这样,派生列(基本上是按年龄划分的家庭成员排名,最早的排名)不需要是结果集中的列(这也便于过滤)。

而且我确信还有很多其他的(例如不必重复精心设计的表达方式);这只是我想到的第一个。

如果您在问题中发帖,我看不到任何优势。如果你发布一个真实的例子,有人说有优势,我们或许可以解释为什么(或者至少为什么他们会这么想)。