通过使用以下查询,我得到了不想要的结果。
select *
from db_user
where full_name like 'Admin%'
order by date_created asc
OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY;
必填结果:
结果获取:
如何安排查询流程以达到所需的结果?
您是否正在寻找类似的东西?
select u.*
from (select u.*
from db_user u
OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY
) u
where full_name like 'Admin%'
order by date_created asc ;
offset
不带order by
的使用实际上没有任何意义。但这似乎就是您要的。
您可以使用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