📜  MS SQL Server中的偏移量获取

📅  最后修改于: 2021-08-27 17:46:09             🧑  作者: Mango

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

句法 :

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将行从降序排列到升序。
  • 偏移量跳过表中指定的行数。
  • 使用offset子句后,Fetch返回行数。它返回指定的行数。
  • FIRST返回偏移量为的表开始处的行数,而NEXT返回第一组行之后的连续行。

例子 –


表–学生

Roll number Name Course
111 Riya CSE
112 Apoorva ECE
113 Mina Mech
114 Rita Biotechnology
115 Veena Chemical
116 Deepa EEE

如果用户希望跳过前两行并返回其余两行,则查询为–

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

输出 –

Roll number Name Course
113 Mina Mech
114 Rita Biotechnology
115 Veena Chemical
116 Deepa EEE

偏移量会跳过查询中指定的行数,而ASC的顺序会将行从升序排列到降序。如果用户想跳过前6行并获取下一行,则查询为–

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

输出 –

Roll number Name Course
117 Vani Mech
118 Megha ECE

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