none
SELECT COMPARANDO DUAS LINHAS DE UMA MESMA COLUNA RRS feed

  • Pergunta

  • Desculpa a ignorância galera, mas o problema é o seguinte.

    Tenho uma tabela com os seguintes campos:

    TABELA PESSOA
    ID = 10
    NOME = João
    SEXO = Masculino
    INICIAL_SEXO = M

    Preciso de um SELECT que compare os valores de INICIAL_SEXO e me traga todas as linhas em que NÃO houver coerência, ou seja, linhas em se que SEXO for Masculino, INICIAL_SEXO sejam M.

    Não é bem essa a situação, mas é o que preciso. Espero que tenham entendido pelo menos um pouco.

    Isso é oque tenho até agora.

    SELECT pessoa. id,  pessoa. nome, pessoa.sexo, pessoa.inicial_sexo
    FROM (pessoa INNER JOIN pessoa pessoa_1 ON
    pessoa.sexo = pessoa_1.sexo)
    WHERE pessoa.inicial_sexo <> pessoa_1.inicial_sexo
    GROUP BY pessoa. id
    HAVING COUNT(*) > 1

    OBRIGADO.

    sexta-feira, 5 de julho de 2013 21:22

Todas as Respostas

  • Mayck, pelo que entendi seria uma coisa simples, só não entendi a questão onde o sexo for masculino e inicial_sexo igual a 'M', seria na verdade igual a 'F', certo ? tente assim:

    select
      *
        from pessoa
    where sexo = 'masculino'
    and inicial_sexo = 'F' -- se o M não for de masculino e sim de mulher trocar


    Alexandre Matayosi Conde Mauricio.

    sexta-feira, 5 de julho de 2013 21:54
  • Voce pode tentar fazer com subquery

    SELECT p.id,  p.nome, p.sexo, p.inicial_sexo
    FROM pessoa p, (SELECT id,inicial_sexo FROM pessoa) sub_view
    WHERE p.id = sub_view.id and
    p.inicial_sexo <> sub_view.inicial_sexo

    sábado, 6 de julho de 2013 01:30
  • Falaí Mayck, acho que isso resolve.

    SELECT *

    FROM pessoa

    WHERE SUBSTR(sexo,1,1) <> incial_sexo

    • Sugerido como Resposta ThalesAR sábado, 6 de julho de 2013 18:55
    sábado, 6 de julho de 2013 18:55
  • Deleted
    domingo, 7 de julho de 2013 18:55