派生表

派生表是一个查询结果生成的表,类似于临时表。

派生表可以简化查询,避免使用临时表。相比手动生成临时性能更优越。派生表与其他表一样出现在查询的FROM子句中

select * from (select * from athors)  temp
temp 就是派生表
Every derived table must have its own alias(每个派生表必须有自己的别名)

派生出来的表必须要是一个有效的表.因此,它必须遵守以下几条规则:

  1. 所有列必须要有名称

  2. 列名称必须是要唯一

  3. 不允许使用ORDER BY(除非指定了TOP)

eg.

bbc国家概况表

显示每个地区以及的该地区国家总人口数不少于1000万的国家总数.

SELECT region, COUNT(name) FROM bbc WHERE population >=10000000 GROUP BY region

 

使用派生表:

SELECT region, COUNT(name) FROM (SELECT region, name FROM bbc WHERE population>=10000000) temp1 GROUP BY region

 

or:

SELECT region, COUNT(name) FROM (select name,region from bbc where population>=10000000) as temp1 group by region

 

posted @ 2009-12-27 13:40  smileflower  阅读(1886)  评论(1编辑  收藏  举报