如何在select Query中选择第3行

时间:2018-05-15 03:46:55

标签: sql-server group-by

我有一张桌子(附有截图)。当桌子有3个或更多记录时我不想让它选择第3行
SQL查询:

  SELECT  POA.PurchaseOrder_AuthID, POA.Authorised,wc.Name ,POA.DateAuthorised,POA.DelayEscalationSentAt,AuthorisingContactID
     FROM  dbo.wsm_PurchaseOrder_Auth AS POA   
      INNER JOIN wsm_Contact AS WC ON POA.AuthorisingContactID=wc.ContactID  
     WHERE POA.PONumber = 'PO3841905_51_200908' order by  POA.PurchaseOrder_AuthID 
ASC  


我不能使用Group by,因为我需要所有没有聚合功能的行
授权联系人ID在第2行和第3行可能不同(目前在表中显示相同) table Data

2 个答案:

答案 0 :(得分:2)

不想使用ROW_NUMBER窗口函数

选择第3行
select * from
 (
   select field1,
    row_number() over(order by purchaseorder_authid) rn
   from table

 ) x
where  x.rn <> 3

答案 1 :(得分:0)

这个问题在之前的帖子中回答但是 对于2012年后的SQL Server使用此代码:

SELECT  *
FROM     Table 
ORDER BY OrdClm ASC 
OFFSET  2 ROWS 
FETCH NEXT 1 ROWS ONLY 

和以前的版本:

SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY OrdClm ) RowNr, * FROM Table ) t
WHERE RowNr=3