2016-08-24 8 views
0

FNAME LNAMEのIDnull値はどのように組み合わせるかの列にあり

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

をあなたのテーブルに? –

+0

なぜfname 'c'はlname 'r'の代わりにlname 'q'を使うのですか? –

+0

'fname'と' lname'ヌルのうちの1つだけを持つテーブルの各行に頼ることができますか? –

答えて

2

があるそれらの実際の結果、あなたを欲しいです?あなたはid 1が2回繰り返されているので、101と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

は、単にそれ自体にテーブルを結合する - データに関連し、ご希望の出力に `id`s(の最初の列)ですどのようにfnameのための一つのコピーとLNAMEのための1

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 
関連する問題