2012-02-09 3 views
1

テーブルのcolumn1に値 'A'または 'B'またはnullがあるとします。 Column1の値が 'A'の場合は、selectクエリを実行する必要があります。はカラム2です。そうでない場合は、selectクエリを実行する必要があります。カラム3です。2つの異なるorder byステートメントを1つのクエリで使用する

この要件を単一のクエリで確認することができますか。

答えて

8

ちょうど推測すると、チェックする必要があります!

select *, decode (column1, 'A', column2, column3) as field_for_order 
from your_table 
order by field_for_order 
+4

このデコードを 'order by'節に直接入れることができます。追加の列は必要ありません。 –

+0

+1、きれいなアプローチ。 – danihp

+3

+1また、ANSI CASE式を使用することもできます: 'A'、次にcolumn2、else3、column3 end' –

関連する問題