Здравствуйте!
Не первый раз сталкиваюсь со следующей проблемой.
В MSSQL БД имеется таблица из 2 полей:
id uniquieidentifier PK,
attrib varchar(100)
Надо сделать запрос:
На входе у него список строк,
На выходе должно быть не более чем по одному id на каждую входную строку (по полю attrib).
Проблема в том, что attrib не является уникальным полем.
В случае, если attrib встречается в нескольких записях, можно выбрать любую.
Очевидное решение выглядит так:
select max(id)
from table1
where attrib in (<list>)
group by attrib
Проблема в том, что агрегаты не принимают uniqueidentifier.
Может быть, есть какой-нибудь способ? Кроме
Convert(uniqueidentifier, max(convert(varchar, id)))
Заранее благодарен ответам!
С уважением,
Дмитрий Позняк.