视图定义中有效的 SELECT 语句的子集

视图定义中支持大多数 SELECT 语句语法,但有一些例外。

您不能在临时表上创建视图。SELECT 语句的 FROM 子集不可以包括临时表的名称。

CREATE VIEW 语句中由 SELECT 语句引用的表对象可以是永久数据库表、视图或派生的表。该查询可以引用单独的表对象,或连接两个或多个表对象。这些表可以是当前数据库中的表,可以是本地数据库服务器的其它数据库中的表,或者远程服务器实例的数据库中的表。SELECT 语句可以使用用不相关表或相关表的引用在 FROM 语句中定义派生表。这些派生表定义可以包含 LATERAL 关键字和横向表和列引用。

如果取消用户对表的 Select 特权,而在某条定义视图(该视图为同一个用户所拥有)的 SELECT 语句中引用了该表,则此视图会被删除,除非它还包含来自其它数据库中的表的列。

您无法在驻留在远程数据库中的类型表(包括作为表层次结构一部分的任何表)上创建视图。

请勿在 Projection 子句的 Select 列表中使用显示标签。Projection 子句中的显示标签会被解释为列名称。

Hardcoded 值不应在视图定义中使用,但只能在查询视图的后续 SELECT 语句的 WHERE 子句中使用。如果视图中的值不是 hardcoded ,则查询优化器可以始终排除这些文字值,并且可以在更短的时间内完成查询。但是如果相同的值在视图中被 hardcoded ,则查询优化器仍然必须评估每个文字值。

CREATE VIEW 中的 SELECT 语句不包括 SKIP 、FIRST 或 LIMIT 关键字或 INTO TEMP 子句。有关 SELECT 语句语法和用法的完整信息,请参阅 SELECT 语句