Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Usando Distinct e * ao mesmo tempo

queria fazer um select, que me retornasse todos as colunas da minha tabela, sem ter que digitar uma a uma, sei que [select * from ... ] faz isso. Porem preciso usar o distinct para nao me retornar valores repetidos.

select distinct(campo) from tabela

tentei colocar o '*' de todar forma mas nao consegui, algm sabe alguma maneira ?

5 respostas

select distinct(campo), * from tabela talvez?

O distinct serve somente para o campo entre (), depois você usa o * pra trazer o resto das colunas do registro.

Faça como na resposta do @Thiago Rodrigues acima

não roda po, da erro de sintaxe, ja tentei isso

Cara, foi mal, tinha feito isso a muito tempo atrás e na minha memória funcionava, mas olhando bem aqui, só funciona quando os campos além do que você quer o distinct são iguais.

Ou seja, imagina varios registros com um id(fk) igual, produtos diferentes mas tudo do mesmo cliente: Só funcionaria um "select distinct(id), cliente from tabela", assim viria só 1 registro com o id e o unico cliente.

Se você fosse usar um "select distinct(id), produto from tabela" viriam todos os resultados

Se nesse mesmo caso você usar "select distinct(id), * from tabela", só vai simplificar pra 1 linha quando o id, produto e cliente forem iguais.

solução

acho que nao tem como né ? vou ter que usar distinct e em seguida ir descriminando todas as colunas...