Case - SQLSERVER 2008 [RESOLVIDO]

3 respostas
O

Bom dia amigos

Estou fazendo uma query onde utilizo a funcao CASE para fazer uma seguinte condicao, digamos que tenho 5 codigos na minha base (0,1,2,3,4,) porem quero que soo venha as linhas cujo codigo sao (1,2,3,4)

pensei em algo assim

CASE
WHEN s.codigo='1’
THEN 'UM’
ELSE CASE
WHEN s.Codigo='2’
THEN ‘DOIS’

WHEN s.Codigo='3'
	    THEN 'TRES'
	    
	    WHEN s.Codigo='4'
	    THEN 'QUATRO'

  porem travei na hora de fazer a condicao para que as linhas q tenham o codigo zero nao aparecam

  Poderiam me ajudar????

  Agradeco desde ja pela ajuda!

3 Respostas

Michel_M
SELECT
 (
   
    CASE 
         WHEN s.codigo='1' THEN 'UM'
          
    ELSE (
               CASE WHEN s.Codigo='2' THEN 'DOIS' 
                        WHEN s.Codigo='3'  THEN 'TRES'
                        WHEN s.Codigo='4'  THEN 'QUATRO' 
            End)
End) as Mostrar 

FROM tabela

WHERE  (
   
CASE 
         WHEN s.codigo='1' THEN 'UM'
          
    ELSE (
               CASE WHEN s.Codigo='2' THEN 'DOIS' 
                        WHEN s.Codigo='3'  THEN 'TRES'
                        WHEN s.Codigo='4'  THEN 'QUATRO' 
               End)
End) IN ('UM', 'DOIS', 'TRES', 'QUATRO')

Tenta assim

O
Michel M:
SELECT
 (
   
    CASE 
         WHEN s.codigo='1' THEN 'UM'
          
    ELSE (
               CASE WHEN s.Codigo='2' THEN 'DOIS' 
                        WHEN s.Codigo='3'  THEN 'TRES'
                        WHEN s.Codigo='4'  THEN 'QUATRO' 
            End)
End) as Mostrar 

FROM tabela

WHERE  (
   
CASE 
         WHEN s.codigo='1' THEN 'UM'
          
    ELSE (
               CASE WHEN s.Codigo='2' THEN 'DOIS' 
                        WHEN s.Codigo='3'  THEN 'TRES'
                        WHEN s.Codigo='4'  THEN 'QUATRO' 
               End)
End) IN ('UM', 'DOIS', 'TRES', 'QUATRO')

Tenta assim

Michel Obrigado pela resposta, resolveu o que eu precisava!

pmlm

Isso é o que se chama ligar o complicómetro!

Porque não simplesmente:

SELECT CASE s.codigo WHEN '1' THEN 'UM'  
                     WHEN '2' THEN 'DOIS'   
                     WHEN '3' THEN 'TRES'  
                     WHEN '4' THEN 'QUATRO'   
        END as mostrar   
 FROM tabela  
WHERE s.codigo != 0
Criado 5 de junho de 2012
Ultima resposta 5 de jun. de 2012
Respostas 3
Participantes 3