2016-12-20 6 views
3

私のクエリ結果を1行をしたい:私は、これらの結果を表示したい複数の行 - 私は以下のnullではない

ID   desc    Year pid 
0006845503 tes1    null null 
0006845503 null    2017 null  
0006845503 null    null 90 
0006845503 null    null null 

ID    desc    year pid 
0006845503  TEST1    2017 90 

答えて

3

列の値にのみ表示されている場合一度に1つの値しか利用できない場合は、単純なグループ単位でタスクを実行する必要があります。

SELECT t.id,t.year,t.code,MAX(t.desc) as desc,MAX(t.year) as year,MAX(t.pid) as pid 
FROM YourTable t 
GROUP BY t.id,t.year,t.code 
+0

正解ですが...もちろん興味はありますが、なぜテーブルエイリアスが必要なのですか? – mathguy

+0

まあ、何か特別な理由はありません..私はそれがより読みやすく、それは習慣(良い方法です:) @ mathguy – sagi

+0

...列のエイリアスが見つかりましたか?この非常に単純なケースでは、テーブルのエイリアスよりも私には意味があります。 – mathguy

1

1つの列に1つの行値がある場合は、nullをスキップして列の唯一の値を返す、minまたはmaxのような集計関数を使用できます。たとえば:

SELECT id, year, code, MAX("desc"), MAX("year"), MAX(pid) 
FROM  mytable 
GROUP BY id, year, code 
+1

ありがとう – bab

関連する問題