我有一张桌子(附有截图)。当桌子有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行可能不同(目前在表中显示相同)
答案 0 :(得分:2)
不想使用ROW_NUMBER
窗口函数
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