none
SQL - CASE WHEN com concatenação de campos para um determinado resultado RRS feed

  • Pergunta

  • Boa tarde!

     

    Preciso obter um resultado específico de acordo com o conteúdo de um determinado campo.

     

    Exemplo: Tabela1 - Campos:   TIPO          Char(1)

                                                 ORIGEM    Char(2)

     

    Caso o conteúdo do campo TIPO seja '2' eu tenho que retornar a descrição BASICO

    Caso o conteúdo do campo TIPO seja 4 eu tenho que retornar a descrição STANDARD

     

    Até aí tudo bem, pois eu usava o select abaixo:

     

    SELECT CASE TIPO WHEN '2' THEN 'BASICO'  ELSE 

                  CASE TIPO WHEN '4' THEN 'STANDARD' ELSE 'INDEFINIDO' END END AS TIPO

    FROM TABELA1

     

    AGORA ENTROU UMA NOVA CONDIÇÃO:

    Caso o conteúdo do campo TIPO seja '2' e o conteúdo do campo ORIGEM seja 'PT' eu tenho que retornar a descrição BASICO

     

    Caso o conteúdo do campo TIPO seja 4 eu tenho que retornar a descrição STANDARD

     

    OBS.: Não estou conseguindo colocar a condição ORIGEM  =  'PT'  no comando CASE

     

    Gostaria de saber se alguem poderia me ajudar.

     

    Agradeço deste já

     

    Atenciosamente,

    Pablo Volpato

     

    quarta-feira, 3 de outubro de 2007 18:48

Todas as Respostas

  • era isso ?

     

    SELECT Tipo = Case When Tipo = '2' and Origem = 'PT' Then 'Basico' when Tipo = '4'  then 'standart' Else 'indefinido' end

    FROM TABELA1

     

    abs;
    quarta-feira, 3 de outubro de 2007 18:52
  • Pablo,

     

    Provavelmente o exemplo do Marcelo vai te ajudar, mas a nível de curiosidade como você estava fazendo o case?

    quarta-feira, 3 de outubro de 2007 19:28
  • Como necessitei de uma referência como exemplo, posto um SELECT CASE para retornar o campo condicionado.

     

    SELECT CASE WHEN TIPO = '2' THEN 'BASICO'  

                           WHEN TIPO = '4' AND ORIGEM = 'PT'  THEN 'STANDARD'

                  ELSE 'INDEFINIDO' END AS TIPO

    FROM TABELA1

     

    Para a minha consulta funcionou perfeitamente, comparando inclusive campos de duas tabelas.

     

     

    quinta-feira, 23 de outubro de 2008 12:32