#sql
#sql
Вопрос:
введите описание изображения здесьУ меня есть две строки с одинаковым значением, за исключением одного столбца, я хочу объединить их и добавить другое значение в новый столбец
Name Address City State ID ID Type
XYZ 123 address New York NY 123 Code1
XYZ 123 address New York NY D561 Code2
ABC 895 address Richmond VA 568A Code1
XAB 456 address Dallas TX 568 Code2
XAB 456 address Dallas TX 458A562 Code1
XYZ 123 address New York NY 123T Code3
Результат
Name Address City State Code1 Code2 code3
XYZ 123 Address New York NY 123 D561 123T
ABC 895 address Richmond VA 568A
XAB 456 address Dallas TX 458A562 563
Комментарии:
1. Будет ли максимум две строки для каждого случая, или может быть больше? Взгляните на СВОДНЫЙ запрос. Пожалуйста, помечайте вопросы соответствующей базой данных и тем, что вы пробовали. Спасибо
2. какую СУБД вы используете?
Ответ №1:
Приведенный ниже запрос выдаст вам правильный желаемый o / p согласно приведенному выше образцу ввода или же для стандарта вы можете использовать PIVOT
ключевое слово для создания нового столбца
SELECT Name, Address,City, State,
min(ID) AS ID1,max(ID) AS ID2
FROM your_table
GROUP BY Name, Address,City, State
Ответ №2:
Вы можете использовать агрегацию:
select Name, Addresss, City, State,
min(id) as id1,
(case when min(id) <> max(id) then max(id) end) as id2
from t
group by Name, Addresss, City, State ;
Комментарии:
1. Я добавил новый скриншот, и я использую sql server
2. @Mike . . . Я не уверен, к чему ты клонишь. Этот ответ, похоже, делает то, что вы хотите.
3. Большое вам спасибо.
4. @ Gordon что произойдет, если у меня будет еще одно значение Code 3 или Id3 value?
5. На основе моего примера все работает так, как ожидалось. Спасибо.