2013-06-18 72 views
0

我目前正在學習SQL。過濾併合並內表數據

說我有一個數據表A(讓我們假設自增字段作爲主鍵)

ID FIELD1 FIELD2 FIELD3 FIELD4 FIELD5 
1 1  null null null null 
1 null 2  null 4  null 
1 null null 3  null null 
1 null null null null 5 

由於ID是相同的,但其值在不同的記錄傳播。是否有可能使用SQL說

ID FIELD1 FIELD2 FIELD3 FIELD4 FIELD5 
1 1  2  3  4  5 

請糾正我,如果我錯了獲取記錄..

回答

1

您應該能夠使用聚合函數與GROUP BY得到結果:

select id, 
    max(field1) as field1, 
    max(field2) as field2, 
    max(field3) as field3, 
    max(field4) as field4, 
    max(field5) as field5 
from yourtable 
group by id; 

參見SQL Fiddle with Demo

0

選擇ID,MAX(ISNULL(FIELD1,0)),MAX(ISNULL(FIELD2,0)),MAX(ISNULL(FIELD3,0)),MAX(ISNULL(FIELD4, 0)),MAX(ISNULL(FIELD5,0))從tableA Gro up由Id

+0

ISNULL是SQL Server語法。 Oracle的等價物將是NVL()。但無論如何,這是不必要的,也許是不可取的。 – APC