SQLServer 想给视图排序 请支招 :)

qq_33323996 2016-11-26 12:11:22
数据库情况说明:
SqlServer 2005
数据库存在两张表, 表A, 表A_tmp
表A存储的是正式数据, 表A _tmp存储的是最近一天的数据,归档后会全部转移到A中。

数据库现有一个视图,
CREATE VIEW [dbo].[v_u_A]
AS
select *
from A
union all

select *
from A_tmp

业务情况说明:
前台c#编写的程序从该视图中查询数据并展示,前台程序没有源码,无法更改,现在的情况是查询出的数据展示时没有进行排序,所有是乱序的,现在想让查询出的数据按视图中的某一列排序显示,请问在数据库层面怎么处理该视图可以实现这种需求。

附:
select top 99 percent * from a where a.id = 123
是找到 id=123 的 前99%记录
还是先找到 99%的记录 再找到 99%中的id=123的


...全文
1385 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33280322 2019-12-02
  • 打赏
  • 举报
回复 1
视图里面排序,前面必须加上TOP *,否则后面的order by 执行不了
  • 打赏
  • 举报
回复
附: select top 99 percent * from a where a.id = 123 是找到 id=123 的 前99%记录 还是先找到 99%的记录 再找到 99%中的id=123的 是先找到id=123,然后再返回99%的数据
Klera 2016-12-05
  • 打赏
  • 举报
回复
给实际表增加一个默认的插入时间,,,视图中按插入时间排序不就行了吗?
中国风 2016-11-26
  • 打赏
  • 举报
回复
e.g.
SELECT * FROM (select top 99 percent * from a ) AS t where id = 123
卖水果的net 2016-11-26
  • 打赏
  • 举报
回复
两个办法: 1、使用表值函数,在函数中把数据排好序; 2、在视图上创建一个 clustered index ;

22,199

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧