У меня есть таблица в SQL Server 2000, которую я пытаюсь запросить определенным образом. Лучший способ показать это - пример данных.SQL-запрос для возврата одной отдельной записи для каждого уникального значения в столбце
Вот, [Addresses]
:
Name Street City State
--------------------------------------------------------
Bob 123 Fake Street Peoria IL
Bob 234 Other Street Fargo ND
Jim 345 Main Street St Louis MO
Это на самом деле упрощенный пример структуры фактической таблицы. Структура таблицы полностью вне моего контроля. Мне нужен запрос, который будет возвращать один адрес для имени. Не имеет значения, какой адрес, только что есть только один. В результате может быть это:
Name Street City State
--------------------------------------------------------
Bob 123 Fake Street Peoria IL
Jim 345 Main Street St Louis MO
Я нашел подобный вопрос here, но ни одно из решений данной работы в моем случае, потому что у меня нет доступа к CROSS APPLY
и вызова MIN()
на каждом столбце будет смешивать различные адреса вместе , и хотя мне все равно, какая запись возвращается, это должна быть одна целая строка, а не смесь разных строк.
Рекомендации по изменению структуры стола мне не помогут. Я согласен с тем, что эта таблица ужасна (это хуже, чем показано здесь), но это часть основной базы данных ERP, которую я не могу изменить.
В этой таблице содержится около 3000 записей. Первичного ключа нет.
Любые идеи?
Можете ли вы дать представление о том, сколько записей в вашем столе? У меня есть некоторые идеи по этому поводу, но может быть не очень быстро, если есть тысячи/миллионы записей. –
У вас есть первичные ключи на этой таблице? –
~ 3000 записей, и никаких ПК, удивительно. Я добавил эту информацию к вопросу. – recursive