sql >> データベース >  >> RDS >> Sqlserver

SQL クエリで N 番目のレコードを選択する

    これは典型的な面接の質問です。

    Ms SQL 2005 以降では、ROW_NUMBER() を使用できます。 キーワードと述語 ROW_NUMBER =n

    を持つ
    USE AdventureWorks;
    GO
    WITH OrderedOrders AS
    (
        SELECT SalesOrderID, OrderDate,
        ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
        FROM Sales.SalesOrderHeader 
    )  
    
    SELECT * 
    FROM OrderedOrders 
    WHERE RowNumber = 5;
    

    SQL2000 では、

    のようなことができます。
    SELECT Top 1 *FROM
    [tblApplications]
    where [ApplicationID] In
    (
        SELECT TOP 5 [ApplicationID]
        FROM [dbo].[tblApplications]
        order by applicationId Desc
    )
    


    1. (mysql jdbcを使用して)ストリーミング結果セットを閉じるには長い時間がかかります

    2. SQL ServerでのCOUNT()のしくみ

    3. mysqliselectを使用するとエラーが発生します

    4. Accessで重複レコードを見つける方法