SQL Left Inscreva-se somente na primeira partida

Eu tenho uma consulta contra um grande número de grandes tabelas (linhas e colunas) com um número de associações, no entanto, uma das tabelas tem algumas linhas duplicadas de dados causando problemas para a minha consulta. Como esse é um feed em tempo real somente leitura de outro departamento, não posso consertar esses dados; no entanto, estou tentando evitar problemas na minha consulta.

Tendo em conta que, eu preciso adicionar esses dados de porcaria como uma junção esquerda para minha boa consulta. O conjunto de dados se parece com:

IDNo    FirstName   LastName    ...
-------------------------------------------
uqx     bob     smith
abc     john        willis
ABC     john        willis
aBc     john        willis
WTF     jeff        bridges
sss     bill        doe
ere     sally       abby
wtf     jeff        bridges
...

(cerca de 2 dúzias de colunas e 100 mil linhas)

Meu primeiro instinto foi realizar um distinto me deu cerca de 80 mil linhas:

SELECT DISTINCT P.IDNo
FROM people P

Mas quando eu tento o seguinte, recebo todas as linhas de volta:

SELECT DISTINCT P.*
FROM people P

OU

SELECT 
    DISTINCT(P.IDNo) AS IDNoUnq 
    ,P.FirstName
    ,P.LastName
    ...etc.    
FROM people P

Eu então pensei em fazer uma função agregada FIRST () em todas as colunas, mas isso também parece errado. Sintacticamente estou fazendo algo errado aqui?

Atualizar: Queria apenas observar: Esses registros são duplicados com base em um campo de ID não chave / não indexado listado acima. O ID é um campo de texto que, embora tenha o mesmo valor, é um caso diferente dos outros dados que causam o problema.

questionAnswers(6)

yourAnswerToTheQuestion