如何选择一组字段的第N行?

时间:2015-01-22 04:40:38

标签: sql select filemaker

我有一个非常小的数据库,我需要从特定行返回一个字段。

我的表看起来像这样(简化)

Material_Reading Table

pointID Material_Name
123     WoodFloor
456     Carpet
789     Drywall
111     Drywall
222     Carpet

我需要能够将这些组合在一起并查看不同种类(WoodFloor,Carpet和Drywall),并且需要能够选择我想要的那种并返回。所以我的select语句会将各种不同的类型放在一个列表中然后我可以有一个变量来选择其中一行 - 例如1,2,3。

我希望这是有道理的,这有点像非标准的实现,因为它不幸的是它是一个文件制作者数据库,所以我只需要一个大的SQL语句来完成我需要的几个,每个都会选择我指定的单个行。

到目前为止我尝试过:

SELECT DISTINCT Material_Name FROM MATERIAL_READING WHERE Room_KF = $roomVariable

这可以工作并返回房间变量指示的房间中所有材料名称的列表。但我不能通过提供行号来获得特定的一个。

我尝试过使用LIMIT 1 OFFSET 1.可能不受Filemaker支持,或者我做错了,我尝试了这样 - 它给出了一个错误:

SELECT DISTINCT Material_Name FROM MATERIAL_READING WHERE _Room_KF = $roomVariable ORDER BY Material_Name LIMIT 1 OFFSET 1

我能够像这样使用ORDER BY:

SELECT DISTINCT Material_Name FROM MATERIAL_READING WHERE Room_KF = $roomVariable ORDER BY Material_Name

1 个答案:

答案 0 :(得分:1)

在MSSQL中

 SELECT DISTINCT Material_Name 
 FROM MATERIAL_READING
 WHERE _Room_KF = 'roomVariable' 
 ORDER BY Material_Name 
 OFFSET N ROWS 
 FETCH NEXT 5 ROWS ONLY

其中N>从哪一行开始

X-> no.of要检索的行是从(N + 1行)

开始的