应该是很简单的事,关于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是不好用的,排序还是写在程序中吧 ------解决方案--------------------