我有这样的看法。
Create view RefStatus
as
select row_number() over(order by Inserted_On desc) Slno, Name,
Email_ID Email, Mobile_No Mobile, Status, Inserted_On ProfileCreatedOn from RefTable
现在
select Slno, Name,
Email, Mobile, Status, ProfileCreatedOn from RefStatus
很好,我得到了预期的序列号。但是当我尝试
select Slno, Name,
Email, Mobile, Status, ProfileCreatedOn from RefStatus where Status = 'In-Progress'
我的序列号无法正确生成。它仍然将我表的所有记录视为基本,并生成不正确的序列号。 如何单独为过滤的行生成序列号。
我知道这可以通过存储过程或为每种状态创建单独的视图来完成。有没有办法在同一个视图中做到这一点?原因是我需要使用实体框架和linq从C#调用此视图。
答案 0 :(得分:2)
在视图中生成的ROW_NUMBER()
不是动态的,即在过滤视图时它不会动态更改。
在查询中而不是在视图中使用ROW_NUMBER()
:
select
row_number() over(order by Inserted_On desc) SlNo,
Name,
Email,
Mobile,
Status,
ProfileCreatedOn,
from RefStatus
where Status = 'In-Progress'