2016-08-24 1 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, который повторяется дважды, и ваше агрегирование должно сочетать 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

просто соединить таблицу к себе - один экземпляр для имя_файла и один для 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 
Смежные вопросы