SQL视图的限制 - 不支持按子句排序

时间:2013-10-18 04:46:31

标签: sql-server

为什么我们不能在创建视图时使用Order By子句。 SQL支持带有查询中提到的TOP子句的Order by子句并且在没有TOP子句的情况下不支持它的原因是什么

3 个答案:

答案 0 :(得分:1)

视图只不过是一个虚拟表,并且在任何RDBMS中都无法保证数据存储在表中的顺序。

您需要做的是:

SELECT <Column1>,<Column2>,....,<ColumnN>
FROM <MyView>
ORDER BY <MyColumn>

答案 1 :(得分:0)

因为tsql是关系型的,而视图是关系,而且关系没有顺序。

答案 2 :(得分:0)

在SQL中,view是基于SQL语句的结果集的虚拟表。视图包含行和列,就像真实表一样。 view中的字段是数据库中一个或多个real tables的字段。

您可以将SQL函数,WHERE和JOIN语句添加到视图中,并将数据呈现为数据来自一个表。

为了对结果数据进行排序,您需要查询它并根据您的要求应用order by子句。