SQL - Как выбрать первую строку (или любую уникальную строку) из нескольких строк с одинаковым идентификатором?
Допустим, у меня есть результат запроса, который выглядит следующим образом:
ID NAME Phone
---- ---- -----
1 Bob 111-111-1111
1 Bob 222-222-2222
1 Bob 333-333-3333
2 Stan 555-555-5555
3 Mike 888-888-8888
3 Mike 777-777-7777
Я хочу вернуть только один экземпляр строки каждого значения идентификатора. Для меня не имеет значения, какую из нескольких строк я получу - первая в наборе в порядке.
Таким образом, возможный результат будет:
ID NAME Phone
---- ---- -----
1 Bob 111-111-1111
2 Stan 555-555-5555
3 Mike 888-888-8888
2 ответа
Решение
Для SQL Server [править] и MS Access вы можете сделать
SELECT [ID], [Name], MIN(Phone) as PhoneNumber
FROM PhoneNumbers
GROUP BY [ID], [Name]
Это вернется
ID NAME Phone
---- ---- -----
1 Bob 111-111-1111
2 Stan 555-555-5555
3 Mike 777-777-7777
Возможно, вы захотите добавить какой-то уникальный ключ к таблице, просто мысль.
Возможно, мы также поможем вам в этом направлении, если вы предоставите нам инструкцию T-SQL, которая дала вам первые полученные результаты, с некоторой информацией о том, как это можно переписать, чтобы получить желаемые результаты.