Объединение столбцов в sql server

У меня есть две строки в таблице, как показано ниже:

jack johnson     NULL     Male
jack johnson     27       NULL

и я хочу объединить их в одну строку:

jack johnson     27       Male

Я попытался объединить два столбца, но в итоге получил следующее:

jack johnson male
jack johnson 27

Я не знаю, что делать дальше. Любая помощь или советы будут оценены.

1
0
36
3

Ответы 3

Вы можете использовать агрегацию:

select col1, col2, max(col3) as col3, max(col4) as col4
from t
group by col1, col2;

Рад, что ты нашел свой ответ. Пометьте этот ответ как принятый, нажав серую галочку слева от ответа. Это позволяет другим пользователям узнать, что на вопрос есть ответ, и награждает пользователя, который ответил, некоторыми очками репутации.

Eric Brandt 13.09.2018 19:45

Если вы знаете, что только одна строка будет иметь значение для каждого столбца, вы можете воспользоваться тем фактом, что maxmin) игнорируют null. Если в столбце только одно значение, max просто вернет его:

SELECT   firstname, lastname, MAX(age), MAX(gender)
FROM     mytable
GROUP BY firstname, lastname

Использовать группу по с макс .:

declare @tmp table ([first_name] nvarchar(50),[last_name] nvarchar(50), age int, sex   nvarchar(50))
insert into @tmp values
('jack','johnson',NULL, 'Male')
,('jack','johnson',27  , NULL)

select  first_name, last_name, max(age) as age, max (sex) as sex from @tmp
group by first_name, last_name

Результат:

enter image description here

Другие вопросы по теме