视图中怎么不能使用Order By语句?
Alter view v_kq2
as
Select Fid '序号',GH '工号',CJ '车间',GX '工序',TB '台板',NameID '车间员工号',FName '姓名',XS '技术比例系数',Note '备注',FDate '日期',FUser '制单人'
From cl_ygjc
Where CJ In('2','5')
Order by 序号 ASC会报错:
消息 1033,级别 15,状态 1,过程 v_kq2,第 6 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
Alter view v_kq2
as
Select Fid '序号',GH '工号',CJ '车间',GX '工序',TB '台板',NameID '车间员工号',FName '姓名',XS '技术比例系数',Note '备注',FDate '日期',FUser '制单人'
From cl_ygjc
Where CJ In('2','5')
Order by 序号 ASC会报错:
消息 1033,级别 15,状态 1,过程 v_kq2,第 6 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
select * from v_kq2 Order by 序号 ASC
select * from v_kq2 Order by 序号 ASC
Alter view v_kq2
as
Select top 100 percent
Fid '序号',GH '工号',CJ '车间',GX '工序',TB '台板',NameID '车间员工号',FName '姓名',XS '技术比例系数',Note '备注',FDate '日期',FUser '制单人'
From cl_ygjc
Where CJ In('2','5')
Order by Fid ASC我这样是没有报错了,
但是给视图加上Select top 100 percent 后,再
Select top 100 percent
得到的结果集它也没有按顺序进行排列的,请问是怎么回事?
as
Select Fid '序号',GH '工号',CJ '车间',GX '工序',TB '台板',NameID '车间员工号',FName '姓名',XS '技术比例系数',Note '备注',FDate '日期',FUser '制单人'
From cl_ygjc
Where CJ In('2','5') select * from v_kq2 order by Order by 序号 ASC
我觉得 那最好写存储过程吧。查询的时候直接调用。 不知道是否可行?
楼主,你最好在查询时再排序就好,
不要在建立视图时排序,2000可以,2005就算TOP 100 PERCENT可能都不行