sqlserver 创建视图失败,原因:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 创建视图失败,原因:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效相关的知识,希望对你有一定的参考价值。
sql语句:
create view v$_emp_1
as
select * from emp
where emp.sal > (select min(sal) from emp)
order by sal
错误原因:
消息 1033,级别 15,状态 1,过程 v$_emp_1,第 5 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
求大家帮忙分析下,thank!
其实你要排序的话可以对视图进行排序嘛,没必要在视图创建时候就排序
--创建视图
create view v$_emp_1
as
select * from emp
where emp.sal > (select min(sal) from emp)
--查询视图
select * from v$_emp_1 order by sal--这儿排序不就行了嘛~~~采纳哦 参考技术A 错误提示说得很清楚了。"不能用order by "追问
select * from emp
where emp.sal > (select min(sal) from emp)
order by sal
这样查询并不会出错,但创建视图时出错,大哥你能解释的再清楚些吗?
视图、触发器、存储过程、自定函数是数据库特定的样式。
有一些系统自带的函数不能用在里面,详细看在查询平台下“Ctrl+F1“看 联机丛书和帮助说明。
用视图会对数据结构保密、查询方便。
但数据量超1千万时,建议用存储过程。
=============================================
微软的说明
http://msdn.microsoft.com/zh-cn/library/ms189463.aspx
http://msdn.microsoft.com/zh-cn/library/ms188385.aspx
sqlserver视图与创建视图的语句查询的结果不一致
问题描述:sqlserver中创建了一个视图,单独查询这个视图与把创建视图的语句拿出来查询的结果不一样,有一个字段从视图中查询为null,从语句中查询是有值。
解决方案:把这个视图删除掉,重新创建一遍,再次查询,两边的结果保持一致。具体的原因未知。
以上是关于sqlserver 创建视图失败,原因:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效的主要内容,如果未能解决你的问题,请参考以下文章