2016-12-04 6 views
-1

私が持っているこのSQL - 他の列で列を並べ替えることはできますか?

Column1 Column2 Column3 
3  2  1 

のような表には、それはASCの順序で列を返すことは可能ですか? 1> 2> 3

Column3 Column2 Column1 
1  2  3 
+0

ここで、3,2,1は各列の内部の値ですか?または単に列を参照している? – wu4m4n

+1

mysqlまたはsqlite? – Dekel

+0

カラムに基づいた順序付けのための組み込みSQLレベルのサポートはありません。期間。順序を手動で設定する必要がありますが、そのためには既に値を知る必要があります。すでに値がわかっている場合は、クエリを実行する際に意味がありません。 – Shadow

答えて

0

列に基づく順序付けのための組み込みSQLレベルのサポートはありません。期間。順序を手動で設定する必要がありますが、そのためには既に値を知る必要があります。すでに値がわかっている場合は、クエリを実行する際に意味がありません。

あなたができることは、unionを使用して列をレコードに変換し、そのように並べ替えることです。出力は別の形式になりますが、動的ソートを行うことができます。しかし、あなたは、事前にすべての列の名前を知っている必要があります:

select col1 as val, 'col1' as colname from yourtable 
union 
select col2, 'col2' from yourtable 
union 
select col3, 'col3' from yourtable 
order by val asc 

valフィールドは、データがどこから来たどの列からあなたを告げるあなたの価値、colnameフィールドを提供します。

関連する問題