My best guess:
DECLARE @tmp TABLE(id int,name varchar(10))
insert @tmp (id, name)
VALUES( 1, 'a'),
(1, 'b'),
(1, 'c'),
(2, 'a'),
(2, 'b'),
(2, 'c'),
(3, 'a'),
(3, 'b'),
(3, 'c')
SELECT DISTINCT t1.id, t2.name
FROM @tmp AS t1 INNER JOIN
(
SELECT id, name, ROW_NUMBER() OVER(PARTITION BY id ORDER BY name) AS RowNo
FROM @tmp
) AS t2 ON t1.id = t2.RowNo
Result - as expected:
id name
1 a
2 b
3 c