2017-01-22 3 views
0

複数の列がカンマで区切られたorder by句のプレーンソートがあります。しかし、私はそれを探していません。以下をお読みくださいSQL Server 2008 R2で複数の列を並べ替える方法は?

返されるデフォルトの結果セットは、シーケンス列でソートされています。異なったReqTagとランクで順番に並んでいるシーケンス46と47に注意してください。私はReqTag列を一緒に保つようにしていますが、シーケンスとRankでソートしています。今

sequence | Reqtag | Rank 
-------- | ------ | ------- 
42  | PD  | 1 
43  | PD  | 2 
46  | MQ  | 1 
46  | SD  | 3 
47  | MQ  | 2 
47  | SD  | 4 
48  | MO  | 1 

、私はすべてのアイデアが高く評価されている

sequence | Reqtag | Rank 
-------- | ------ | ------ 
42  | PD  | 1 
43  | PD  | 2 
46  | MQ  | 1 
47  | MQ  | 2 
46  | SD  | 3 
47  | SD  | 4 
48  | MO  | 1 

ディスプレイはシーケンスとランク列が使用される場合に、以下のようになりたい(希望の結果セット)。あなたの時間をありがとう。

答えて

1

ソートでウィンドウ関数を使用できます。私は、あなたがしたいと思う:

order by min(sequence) over (partition by reqtag), 
     min(rank) over (partition by reqtag), 
     rank 
+0

ありがとうございましたゴードン。それはうまくいった。私は今それを理解しようとしています。 – Guppies

+0

@Guppies。 。 。これらの列を* select *に追加してクエリを実行できます。クエリが何をしているのか理解するのに役立ちます。 –

1

ReqTagの順序は、それらが一緒にグループ化されていることを、あなたは、次のようにあなたの並べ替えを変更することができるはず以外は重要でない場合は、次の

SELECT sequence, ReqTag, Rank 
FROM [Table] 
ORDER BY ReqTag, sequence, Rank 
+0

この回答がOPの要件をどのように満たしていないのか、私は本当に理解していません。 –

関連する問題