应该是很简单的事,关于SQL2005的视图浏览不排序问题 首先我用的sql2005的自带Management Studio。 我对一张含有商品名(iName)、价格(iPrice)、价格录入时间(iTime)的表(tPrice)做了一些筛选,建了一个视图(vPrice)。这个视图差不多就是 SELECT * FROM tPrice where iPrice>10000 order by iName,iPrice DESC 这样。 但是我在管理器的视图上右键点打开视图的时候,排序是乱的,一定要在sql视图里的SELECT * FROM vPrice 后面手动加上 order by iNamemiPrice DESC 方才排好序。
这尼玛不科学啊~~~~~那我在建视图的时候加的order by给吃了么!!! [解决办法] 在视图中是不允许有order by的,除非select 中有 top 才行,比如下面的就报错了:
create view dbo.v_wc as
select * from sys.objects order by name desc go /* 消息 1033,级别 15,状态 1,过程 v_wc,第 9 行 除非另外还指定了 TOP 或 FOR XML,否则, ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。 */
[解决办法] 如果是TOP 100 percent,order by不起作用;如果是top 100,order by 是起作用的吧 [解决办法] select top 100 percent * from tb order by xxxx 可行的 [解决办法] 我记得2000 视图中排序是好使的,2005以后视图中的order by是不好用的,排序还是写在程序中吧 [解决办法]