2017-01-06 6 views
1

私はこのようなテーブルを持っています。異なる列を1つの順序に並べ替えますか?

Student_Name1 mark1 Student_Name2 mark2 
-------------- ------ --------------- -------- 
Kevin   77  Peter   78 
Andrew   91  David   17 
Scott   46  Bradley  28 

どのように私は以下のように、すべて一緒にすべての名前とポイントを含めることによって、降順に上記の表のmark1mark2を注文することができていますか?

Student_Name mark 
-------------- ------ 
Andrew   91 
Peter   78 
Kevin   77 
Scott   46 
Bradley   28 
David   17 

私はUNION ALLを使用しMSSQL Server 2008 R2の

+3

のように、この目的のためにUNIONを使用することができます下にいくつかの実際の答えがありますが、実際の問題はあなたのテーブル構造です、それはより良いでしょうo student_nameフィールドが1つになるように正規化し、 'pair_id'のようにペアを識別するために使用される別のフィールドを追加することができます。 –

答えて

4

を使用しています:

Select Student_Name1 As Student_Name, 
      Mark1   As Mark 
From  YourTable 
Union All 
Select Student_Name2 As Student_Name, 
      Mark2   As Mark 
From  YourTable 
Order By Mark Desc; 
3

奇妙なテーブルデザインですが、あなたはあなたが

select * from (
select Student_Name1 as Student_Name, mark1 as mark from student 
union all 
select Student_Name2 , mark2 from student) xxx 
order by mark desc; 
関連する問題