2017-11-20 6 views
0

私はIBM PowerでDB2上でSQLを使用しています。私は、複数のCTEから同じデータを引き出し、いくつかのフィールドで注文を出します。しかし、問題はどちらかにnullがある場合です。「これがnullの場合、代わりにこの他のフィールドで注文する」と言うことができますか?私はこれが不可能だと感じているが、私は頼むと思う。私は1つのステートメントで静的情報を取得するためのパフォーマンスを節約できるように、各行に複数の結果を追加しようとしています。両方の画像が同じ結果になっています。ORDER BYの最初のテーブルを動的に選択する方法はありますか?

申し訳ありません。一部のデータをブロックする必要がありますが、役立つことを願っています。

https://i.imgur.com/PHVqQyL.png

+0

2番目のURLが答えを得ることのあなたのチャンスを向上させるために、https://imgur.com/PHVqQyL – AS4noob

+0

を動作しませんでした申し訳ありませんが、あなたの質問を更新してください代わりにコメントで情報を変更/追加します。詳細については、[良い質問をするにはどうすればよいですか?](https://stackoverflow.com/help/how-to-ask)を参照してください。 –

答えて

1
select * 
from mytable 
order by coalesce(thisField, otherfield); 

テスト

SELECT * FROM CMW1 
ORDER BY FLD1  

結果が合体して

FLD1  FLD2 
ABC   ABC 
-   TEST 
-   ABC 

SELECT * FROM CMW1   
ORDER BY coalesce(FLD1,fld2) 

結果

FLD1  FLD2 
ABC   ABC 
-   ABC 
-   TEST 
+0

あなたはこれを行うことができるとは決して知りませんでした!ありがとうございますが、問題を修正しませんでした。 – AS4noob

+0

@ AS4noobあなたの問題は説明されていません。おそらく 'thisfield'は実際にはNullではありません。 – Charles

+0

OUTER JOINを使用しています。データがない場合、欠落している情報はNULLのプレースホルダで保持されますが、間違っていますか? – AS4noob

関連する問題