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

複数の列による並べ替え

    なぜこのようにできるのでしょうか:

    order by ImpFile DESC, ImpTime desc
    

    いいえ、あなたが示している結果にはなりません。結果は次のようになります:

            Import12    2012-05-16 09:55:37.387
    Bart    Import12    2012-05-16 09:55:37.387
    Sasha   Import12    2012-05-16 09:55:37.387
    John    Import12    2012-05-16 09:55:37.383
            Imp01       2012-05-16 09:54:02.477
    Ann     Imp01       2012-05-16 09:54:02.477
    Mark    Imp01       2012-05-16 09:54:02.477
    Sam     Imp01       2012-05-16 09:54:02.477
    

    こちら をご覧ください 例えば

    編集

    あなたに提案があります。次のようなものかもしれません:

    テストデータ

    DECLARE @T TABLE(Name VARCHAR(100),ImpFile VARCHAR(100),ImpTime DATETIME)
    
    INSERT INTO @T
        ([Name], [ImpFile], [ImpTime])
    VALUES
        ('Sam', 'Imp01', '2012-05-16 09:54:02.477'),
        ('Ann', 'Imp01', '2012-05-16 09:54:02.478'),
        ('Mark', 'Imp01', '2012-05-16 09:54:02.477'),
        ('John', 'Import12', '2012-05-16 09:55:37.384'),
        ('Bart', 'Import12', '2012-05-16 09:55:37.387'),
        ('Sasha', 'Import12', '2012-05-16 09:55:37.385');
    

    クエリ

    ;WITH CTE
    AS
    (   
        SELECT
            ROW_Number() OVER(PARTITION BY  t.[ImpFile] 
                         ORDER BY t.[ImpTime] DESC) AS RowNbr,
            '' AS Name,
            t.ImpFile,
            t.[ImpTime]
        FROM
            @T AS t
    )
    SELECT
        CTE.Name,
        CTE.ImpFile,
        CTE.[ImpTime],
        0 as SortOrder
    FROM
        CTE
    WHERE
        CTE.RowNbr=1
    UNION ALL
    SELECT
        t.Name,
        t.ImpFile,
        t.[ImpTime],
        1 as SortOrder
    FROM
        @T AS t
    ORDER BY
        ImpFile DESC,SortOrder, ImpTime desc
    


    1. クラスター化および非クラスター化インデックス:7つのトップポイントの説明

    2. ブラウザはユーザーのIPアドレスを保護しますか?

    3. 列MySQLを手動で自動インクリメントします

    4. Django。フィールドのセットが制限されたプロキシモデル