2
respostas

Select Distinct

Pessoal, uma dúvida:

SELECT DISTINCT NOME, BAIRRO FROM [TABELA DE CLIENTES] WHERE ESTADO = 'RJ'

O quando utilizamos o select distinct na busca, ele vai considerar a ordem com que as tabelas foram criadas no banco? Porque eu inverti a ordem na busca mas ele continuou retornando os valores repetidos do atributo bairro.

2 respostas

Por padrão os selects retornam os dados considerando a ordem de inserção na base:

SELECT NOME, BAIRRO from tbcliente WHERE estado='Rj' ; `

e esta situação só pode ser modificada declarando a ordenação desejada.

SELECT NOME, BAIRRO from tbcliente WHERE estado='Rj' ORDER BY nome DESC; `

Poderá utilizar o comando ORDER BY :

SELECT DISTINCT NOME, BAIRRO FROM [TABELA DE CLIENTES] WHERE ESTADO = 'RJ' ORDER BY NOME, BAIRRO;

Para uma visualização completa, poderá agrupar por BAIRRO para verificar a quantidade de linhas de duplicadas, como o exemplo abaixo:

   SELECT t1.IBAIRRO, 
                     (COUNT(t1.IBAIRRO )) AS COUNT_BAIRRO 
          FROM [TABELA DE CLIENTES] 
      WHERE t1.ESTADO = 'RJ'
      GROUP BY t1.ESTADO 
      ORDER BY COUNT_BAIRRO  DESC;
QUIT;

Espero ter sido útil ;D