Ajuda com Select
Tenho uma tabela (CADASTRO) assim:
Campos
- EMAIL
- NOME
Registros
joao@ig.com.br João Bernardes
paulo@ig.com.br Paulo da Silva
carlos@ig.com.br Carlos Rocha
joao@ig.com.br João Cortes
Quero fazer um select que liste os dois campos, mas apenas 1 registro por email, ou seja, descartar o segundo, terceiro,... registros cujo e-mails seja repetido.
Tentei assim:
SELECT DISCTINCT(EMAIL), NOME FROM CADASTRO e também SELECT DISCTINCT EMAIL, NOME FROM CADASTRO
Ambos os select trazem 4 linhas, ou seja, joao@ig.com.br aparece duas vezes na lista, o que não me serve.
Se fizer assim:
SELECT DISCTINCT EMAIL FROM CADASTRO
Aí até traz apenas as 3 linha que quero, mas, nesse caso, não traz o valor de NOME.
Alguém pode me ajudar com esse select?
Uso Firebird 2.1
Obrigado
Campos
- NOME
Registros
joao@ig.com.br João Bernardes
paulo@ig.com.br Paulo da Silva
carlos@ig.com.br Carlos Rocha
joao@ig.com.br João Cortes
Quero fazer um select que liste os dois campos, mas apenas 1 registro por email, ou seja, descartar o segundo, terceiro,... registros cujo e-mails seja repetido.
Tentei assim:
SELECT DISCTINCT(EMAIL), NOME FROM CADASTRO e também SELECT DISCTINCT EMAIL, NOME FROM CADASTRO
Ambos os select trazem 4 linhas, ou seja, joao@ig.com.br aparece duas vezes na lista, o que não me serve.
Se fizer assim:
SELECT DISCTINCT EMAIL FROM CADASTRO
Aí até traz apenas as 3 linha que quero, mas, nesse caso, não traz o valor de NOME.
Alguém pode me ajudar com esse select?
Uso Firebird 2.1
Obrigado
Valdir Dill
Curtidas 0
Respostas
João Sobrinho
25/11/2011
Colega, vê se ajuda:
SELECT
DISTINCT A.EMAIL,
(SELECT FIRST 1 NOME FROM CADASTRO B WHERE B.EMAIL = A.EMAIL) AS EMAIL
FROM CADASTRO A;
SELECT
DISTINCT A.EMAIL,
(SELECT FIRST 1 NOME FROM CADASTRO B WHERE B.EMAIL = A.EMAIL) AS EMAIL
FROM CADASTRO A;
GOSTEI 0
Valdir Dill
25/11/2011
Colega, vê se ajuda:
SELECT
DISTINCT A.EMAIL,
(SELECT FIRST 1 NOME FROM CADASTRO B WHERE B.EMAIL = A.EMAIL) AS EMAIL
FROM CADASTRO A;
SELECT
DISTINCT A.EMAIL,
(SELECT FIRST 1 NOME FROM CADASTRO B WHERE B.EMAIL = A.EMAIL) AS EMAIL
FROM CADASTRO A;
Funcionou perfeitamente. Obrigado.
GOSTEI 0
Emerson Nascimento
25/11/2011
o uso de sub-selects deve ser evitado sempre que possível, pois degrada a performance.
no seu caso bastaria apenas:
SELECT EMAIL, MIN(NOME)
FROM CADASTRO
GROUP BY EMAIL
no seu caso bastaria apenas:
SELECT EMAIL, MIN(NOME)
FROM CADASTRO
GROUP BY EMAIL
GOSTEI 0
Emerson Nascimento
25/11/2011
o uso de sub-selects deve ser evitado sempre que possível, pois degrada a performance.
no seu caso bastaria apenas:
SELECT EMAIL, MIN(NOME)
FROM CADASTRO
GROUP BY EMAIL
no seu caso bastaria apenas:
SELECT EMAIL, MIN(NOME)
FROM CADASTRO
GROUP BY EMAIL
GOSTEI 0