2009-09-25 2 views
1

У меня есть таблица вроде этого:SQL Выберите уникальное значение в столбце

ID CatID Filename 
1 1  abc 
2 2  abc 
3 3  cat 
4 2  dog 
5 1  dog 

То, что я хочу сделать, это получить только один идентификатор для каждого имени файла. Я не возражаю, какой ID я получаю, то есть первый или последний. Как мне это сделать?

+0

Если вы не заботитесь, которые вы получите идентификатор, то, возможно, вы не должны включать в себя идентификатор в запросе. – dnagirl

+0

Вы можете проголосовать и принять ответ одновременно –

ответ

5
SELECT MIN(ID), FileName 
FROM YourTable 
GROUP BY FileName 

Получит вам первый идентификатор для каждого файла

+0

Технически он не обязательно будет первым ;-) –

+0

Вы уверены, что это получит «первый» идентификатор от ввода-вывода? –

+1

Зависит от определения First - предполагается, что идентификатор является столбцом идентификации, он будет первым :) В SQL Server нет функции FIRST(). – AdaTheDev

3
-- Will get you the min 
SELECT MIN(ID), FileName 
FROM table 
GROUP BY FileName 

-- Will get you the max 
SELECT MAX(ID), FileName 
FROM table 
GROUP BY FileName 
+0

на моем ящике SQL Server 2005: _select first (id) _ results в Msg 195, Level 15, State 10, Строка 1 'first' не является признанным встроенным именем функции. –

+0

First() не является функцией sql !!! – AutomatedTester

+0

Какие СУБД поддерживают «FIRST()» и «LAST()», и это все, кроме синонимов «MIN()» и «MAX()», и если это не синонимы, в чем разница между «FIRST() 'и' MIN() ', или между' LAST() 'и' MAX() '? –

Смежные вопросы