2012-03-22 14 views
0

データファイルを取得して処理中にMySQLを使用すると、1行のさまざまな列のレコードを1つのIDで参照してnullを無視しようとします他の列の値と、単一の行のすべての値を示しヌル値を持つ複数の列/行のIDのレコードを1行に表示

列COL1、COL2、COL3、この検索されたデータテーブル

 
      col1 col2 col3 col4 
row1  1  null null null 
row2  null 2  null null 
row3  null null 3  null 
row4  null null null level1 

finalRow 1  2  3  level1 
Select ID, IFNULL(col1, col2, col3, col4 From table t 
の一意の行ID

にNULL値を持つCOL4

エラーメッセージを表示します。 MAXの機能は私のためには動作しませんMINの値はピックアップする必要があります。

+0

わかりません。 MySQLはいくつのカラムを返しますか? – user1027167

答えて

0

私は右理解していれば、これが解決策になるかもしれません:

Select ID, IFNULL(col1, IFNULL(col2, IFNULL(col3, col4))) from ... 
+0

ありがとう、次のエラーが来る "エラーコード:1582.ネイティブ関数 'IFNULL'の呼び出しで不正なパラメーターのカウント" –

+0

このエラーをスローするSQLステートメントを見たいと思います。 – user1027167

0

MAXが動作するあなたの例を考えます。あなたの例では、列あたり1つの非ヌル値しかないので、最大値も最小値です。だから、これは私がfinalRowだと思うあなたの期待される結果を取得します...:

select max(col1), max(col2), max(col3), max(col4) from table 

あなたが探してもより多くの例を追加しているもののより良い説明を提供するために役立つだろう。

関連する問題