2016-08-24 67 views
0

FNAME LNAME ID空值有在列如何結合

a  null 101 
null  p  101 
b  null 102 
null  q  102 
c   null 103 
null  r  103 

我想這樣的輸出:`

FNAME LNAME ID

a p  101 

b  q  102 

c  r  103 
+1

如何是(第一列)'在所需輸出id's相關數據在你的桌子上? –

+0

爲什麼fname'c'與lname'q'一起而不是lname'r'? –

+0

你可以依靠你的表的每一行,只有一個'fname'和'lname' null? –

回答

2

那些是真正的結果你想?他們不會製造,因爲你現在有id 1重複兩次,你的聚合應該結合1​​01與101但是102與103和102與103?如果你只是把結果搞亂了,那麼就拿總和來看。

SELECT 
    MIN(id) AS id 
    ,MAX(fname) as fname 
    ,MAX(lname) as lname 
    ,empid 
FROM 
    TableName 
GROUP BY 
    empid 
+0

@ user6754455如果我的回答或其他工作給你,請考慮接受它,以便其他人知道你得到了你需要的和聲望點分配。感謝http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Matt

1

只需將表與自身 - 爲FNAME一個副本,一個用於將lname

SELECT 
    a.fname, 
    b.lname, 
    a.empid 
FROM yourTable AS a 
INNER JOIN yourTable AS b 
    ON a.empid = b.empid 
    AND a.fname IS NOT NULL 
    AND b.lname IS NOT NULL