-7

次の値を持つテーブルがあります

    OperationCode   OperationDesc   OperationOrder
    Repl        Remove          1
    R&I         Remove          1
    Ovrh        Remove          1
    Refn        Prep            1
    Repl        Replace         2
    R&I         Install         2
    Ovrh        Install         2
    Refn        Paint           2

次の結果順序を取得するためのクエリを書きたいと思います。OperationOrder列を参照

    OperationCode   OperationDesc   OperationOrder
    Repl            Remove      1
    Repl            Replace     2
    R&I             Remove      1
    R&I             Install     2
    Ovrh            Remove      1
    Ovrh            Install     2
    Refn            Prep        1
    Refn            Paint       2

SQL Server 2005 を使用しています。

4

4 に答える 4

5

SQLFiddel デモはこちら

以下は、試すことができるサンプルクエリです

SELECT * FROM temp
ORDER BY 
CASE OperationCode 
     WHEN 'Repl' THEN 1
     WHEN 'R&I' THEN 2
     WHEN 'Ovrh' THEN 3
     WHEN 'Refn' THEN 4
END, OperationOrder
于 2013-07-09T08:49:50.310 に答える
2

使用したいようですORDER BY

SELECT OperationId, OperationCode, OperationDesc, OperationOrder
FROM YourTable
ORDER By OperationCode ASC
于 2013-07-09T08:48:07.593 に答える
0

私はあなたが欲しいと思います

SELECT 
    ROW_NUMBER() OVER (ORDER BY OperationCode, OperationOrder) as OperationId, 
    OperationCode, 
    OperationDesc, 
    OperationOrder 
FROM SomeTable 
ORDER BY OperationCode, OperationOrder

OperationId は各結果セットで順序が変更されているように見えるため、自動生成された番号でなければなりません

于 2013-07-09T08:50:24.843 に答える