2016-06-14 9 views
-1

によってグループIは、このようなテーブルを持っている:SQL Serverの:置き換えNULL

| id | column_a | column_b | 
| 1 | NULL | 111  | 
| 1 | 222  | NULL  | 
| 2 | NULL | 333  | 
| 2 | 444  | NULL  | 

私はColumn_aとCOLUMN_Bがvarchar型である。この

| id | column_a | column_b | 
| 1 | 222  | 111  | 
| 2 | 444  | 333  | 

のようにグループにそれをしたいです。パターンNULL値は一貫しています。 どうすればいいですか?

+1

「1,100,200」の行が追加された場合はどうなりますか? – sagi

+0

警告:上記の例は実際の問題ではありません。q.v.私の削除された答えは以下の通りです –

答えて

0

集計関数SUMは、通常の関数および演算子と同じ方法でNULLを処理しません。 NULLオペランドに遭遇するとすぐにNULLを返す代わりに、結果を計算する間に非NULLフィールドを考慮に入れます。

だから、あなたは、このようにそれを解決することができます。..

select id, sum(column_a) as column_a, 
sum(column_b) as column_b 
from tbl1 
group by id; 

Demo Here

0

が同様にこれを試してみてください...

select id, sum(nvl(column_a,0)) as column_a, 
sum(nvl(column_b,0)) as column_b 
from tbl1 
group by id; 
0

を私はあなたの問題があると思いますアプリの数値を追加しないでください。

多分あなたはこのような何かを意味する。..

select ISNULL(ta.id,tb.id) id, ta.a,tb.b 
from 
(select * from t where a is not null) ta 
full join 
(select * from t where b is not null) tb 
on ta.id = tb.id 

@sagiが言ったようにあなたが値の種類は、この表を受け取ります、問題

の性質をよりよく説明する必要がありますか?それぞれのIDの2つのレコードのみ? 1つは1列目がヌルで、2列目がヌルではなく、その逆もあります。

その他のシナリオがありますか?

関連する問題