偏移-在微软 SQL 服务器中获取

原文:https://www . geesforgeks . org/offset-fetch-in-ms-SQL-server/

假设一个表有 30 行。用户想要提取最后 10 行的列表并跳过最上面的行。为了使工作更容易,在查询中使用了偏移-提取子句

语法:

order by column_list[ASC|DESC]
Offset offset_row count{ROW|ROWS}
Fetch{FIRST|NEXT} fetch row_count {ROW|ROWS} only

语法分析:

  • Order by 子句必须与 offset-fetch 子句一起使用,否则会导致错误。ASC 从升序到降序排列行,而 DESC 从降序到升序排列行。
  • 偏移量跳过表中指定的行数。
  • Fetch 返回使用 offset 子句后的行数。它返回指定的行数。
  • 第一个返回偏移量为后的表开头的行数,而下一个返回第一组行后的连续行。

示例–

Table – Student
辊号 名字 课程
One hundred and eleven 里亚 中学生毕业考试
One hundred and twelve 它能提供 欧洲经济委员会
One hundred and thirteen 迈纳 技工
One hundred and fourteen 丽塔 生物技术
One hundred and fifteen 印度的七弦琴 化学的
One hundred and sixteen 迪帕 东方马脑脊髓炎

如果用户想跳过前两行并返回其余行,查询给出如下

select name, rollnumber, course
from student 
order by rollnumber ASC
offset 2 ROWS

输出–

辊号 名字 课程
One hundred and thirteen 迈纳 技工
One hundred and fourteen 丽塔 生物技术
One hundred and fifteen 印度的七弦琴 化学的
One hundred and sixteen 迪帕 东方马脑脊髓炎

偏移跳过查询中指定的行数,而按 ASC 排序从升序到降序排列行。如果用户想要跳过前 6 行并获取下一行,查询给出如下

select name, rollnumber, course 
from student
order by roll number ASC
offset 6 ROWS
fetch FIRST 2 ROWS ONLY

输出–

辊号 名字 课程
One hundred and seventeen Vani 技工
One hundred and eighteen 非常 欧洲经济委员会

Offset 子句跳过表中指定的所有行,而 Fetch 子句返回 Offset 子句后的前两行。在 fetch 子句中,可以根据用户的要求使用 FIRST 和 NEXT。Offset 子句是必须使用的,而 fetch 在查询中是可选的。