查询以列出所有用户并首先在其上应用偏移条件,然后再应用其他过滤器

Query to list all users and apply offset condition on it first then other filters

通过使用以下查询,我得到了不需要的结果。

select *     
from db_user 
where full_name like 'Admin%'    
order by date_created asc 
OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY;

所需结果:

获得结果:

如何安排查询流程以达到要求的结果?

你可以用row_number筛选出最近的记录,然后在外层查询full_name上应用条件,排序和限制:

select top(10) *
from (
    select d.*, row_number() over(order by date_created desc) rn 
    from db_user 
) t
where rn > 1 and full_name like 'Admin%'
order by date_create desc

或者,使用 offset:

select *
from (
    select d.*, row_number() over(order by date_created desc) rn 
    from db_user 
) t
where rn > 1 and full_name like 'Admin%'
order by date_create desc
offset 0 rows fetch next 10 rows only

您在找这样的东西吗?

select u.*     
from (select u.*
      from db_user 
      order by id asc
      OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY
     ) u
where full_name like 'Admin%'    
order by date_created asc ;

使用 offset 而不使用 order by 没有任何意义。但是这个似乎正是你所要求的。