仅从查询中返回顶部记录(或第1行)



经过多次尝试和磨难,我能够编写以下查询。

SELECT        repName.repID, repName.Rep_Name, Positions.Position, repName.Roster, DataSheet.ENTERED
FROM            DataSheet INNER JOIN
                             repName ON DataSheet.EE_ID = repName.repID INNER JOIN
                             Positions ON repName.Job_Code = Positions.Job_Code
WHERE        (DataSheet.ENTERED <= @ENTEREDEnd)
 GROUP BY repName.repID, repName.Rep_Name, Positions.Position, repName.Roster, DataSheet.ENTERED, DataSheet.ITEM_ASSIGNED
HAVING        (DataSheet.ENTERED >= @ENTEREDStart) AND (DataSheet.ITEM_ASSIGNED = @ITEM_ASSIGNED) AND (repName.Roster = N'YES')
 ORDER BY DataSheet.ENTERED

我仍在摸索SQL,想知道是否可以修改这个查询,使其只返回顶部值或第1行。我想把这个值发送到我表格上的一个文本框中。

感谢

要返回前N行,只需使用以下

SELECT TOP (1)    /* rest of your query*/

你也可以将PERCENT与你的TOP子句一起使用,比如这个

SELECT TOP (10) PERCENT /* rest of your query*/

如果你在TOP N中有相同的值,并且你希望所有行的TOP值都相同,你可以使用类似的东西

SELECT TOP (N) WITH TIES /* rest of your query*/

IF SQL CE使用了此TOP(N)。必须用括号将数字括起来

在查询中使用Top N或Limit N将返回最旧的一行,因为您使用订购它们

ORDER BY DataSheet.ENTERED

如果您希望检索最新的一行,请将您的排序设置为

ORDER BY DataSheet.ENTERED desc

取决于数据库风格

mssql select top 1

末端的mysql limit 1

oracle where rownum <=1

相关内容

最新更新