Для выбора уникальных значений определенных колонок, совместно с инструкцией SELECT нужно использовать команду DISTINCT. Данные пример демонстрирует различные варианты использования DISTINCT в SQL Server.
-- таблица для демонстрации работы примера
DECLARE @t AS TABLE (id int identity primary key, first_name nvarchar(50), last_name nvarchar(50), age int);
-- заполняем таблицу данными
INSERT INTO @t
SELECT 'Василий', 'Пупкин', 18;
INSERT INTO @t
SELECT 'Василий', 'Абрамов', 22;
INSERT INTO @t
SELECT 'Василий', 'Иванов', 18;
INSERT INTO @t
SELECT 'Маша', 'Пупкина', 17;
INSERT INTO @t
SELECT 'Маша', 'Швалева', 17;
INSERT INTO @t
SELECT 'Маша', 'Мишкина', 98;
INSERT INTO @t
SELECT 'Федя', 'Петров', 10;
INSERT INTO @t
SELECT 'Федя', 'Кбайтов', 27;
INSERT INTO @t
SELECT 'Федя', 'Митрофанофф', 27;
-- собственно сам пример
-- выбираем все данные
SELECT * FROM @t;
-- выбираем только уникальные имена
SELECT DISTINCT(first_name) FROM @t;
-- выбираем только уникальные имена и возраст
SELECT DISTINCT first_name, age FROM @t;
-- выбираем только уникальные имена и возраст
-- сортируем результат по возрасту
SELECT DISTINCT first_name, age FROM @t ORDER BY age DESC;
-- считаем, количество уникальных имен
SELECT COUNT(DISTINCT(first_name)) FROM @t;
-- а вот этот пример работать не будет, т.к. last_name не используется в DISTINCT
SELECT DISTINCT first_name, age FROM @t ORDER BY last_name DESC;