Microsoft SQL Server允许(使用Pubs数据库)。
select
titles.title_id, title, TotalSales
from
titles
join
(select title_id, sum(qty) as TotalSales
from sales
group by title_id) as ts on ts.title_id = titles.title_id
,其中连接的是一个选择的结果,而不是一个命名的表或视图。
这是有效的ANSI标准语法吗?
如果它不是标准的,是否有其他知名的数据库支持它?
是的,这是标准的ANSI SQL,它被称为派生表,是大多数SQL方言的构建块。
在SQL中,将查询结果视为自己的表并在任何"parent"中引用它(使用适当的别名)是完全有效的。查询。
几乎所有的RDBMS平台都支持。
我说几乎是一个警告,但我实际上想不出任何目前支持的平台不允许派生表。