首页 > 试题广场 >

下面关于视图说法正确的是

[单选题]
下面关于视图说法正确的是
  • 可以创建只读视图A view can be created as read only.
  • 视图中的select语句可以有ORDER BY
  • 视图中的select语句不能有GROUP BY.
  • 视图中的SELECT语句必须为每列定义别名
题目含糊不清,mysql里没有只读视图,select语句可以有order by。
发表于 2021-07-06 23:27:19 回复(0)
视图定义中的 SELECT 子句不能包括下列内容:
ORDER BY 子句,除非在 SELECT 语句的选择列表中也有一个 TOP 子句。
(重要:ORDER BY 子句仅用于确定视图定义中的 TOP 或 OFFSET 子句返回的行。 ORDER BY 不保证在查询视图时得到有序结果,除非在查询本身中也指定了 ORDER BY)

INTO 关键字。

OPTION 子句。

引用临时表或表变量。
发表于 2023-02-24 14:15:18 回复(0)
在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、聚合函数 、 GROUP BY 、 HAVING 、UNION 等,视图将不支持INSERT、UPDATE、DELETE;
发表于 2022-06-19 10:17:14 回复(0)
惊,这题竟然不选B
发表于 2022-05-12 20:24:37 回复(0)
垃圾题
发表于 2022-04-17 16:02:14 回复(0)

select * from (

select ... from A? union ?select ...from B order by B.xx

) as Tmp

SQL查询分析器中老是报错:The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.

而单独执行select ... from A? union ?select ...from B order by B.xx语句时是可以的。

后来分析原因如下:

sql中建view是不能用order by字句的,即:

如果把该查询语句建成视图
? create view v_test
? as
? select * from sysobjects order by name
? 会提示出错:
The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.

而在嵌套查询中,系统会自动为select ... from A? union ?select ...from B order by B.xx语句建一个view,里面有order by字句,当然会报错了,去掉order by后,运行成功!

发表于 2021-04-26 22:50:41 回复(1)