none
Atribuindo valor a uma váriavel usando case RRS feed

  • Pergunta

  • Pessoal gostaria de saber se existe uma forma de atribuir valor à uma variável usando  o case exemplo:

    SELECT 
           CASE ORDEM
           WHEN 1 THEN @RESERVADO = ''
           WHEN 2 THEN @VENCIMENTO = RET.TEXTO
           WHEN 3 THEN @EMISSAO = RET.TEXTO
        END
    FROM RET


    terça-feira, 22 de abril de 2014 20:40

Respostas

Todas as Respostas

  • Boa tarde,

    Acredito que será necessário 1 Case para cada variável:

    SELECT 
        @RESERVADO = CASE WHEN ORDEM = 1 THEN '' ELSE @RESERVADO END,
        @VENCIMENTO = CASE WHEN ORDEM = 2 THEN RET.TEXTO ELSE @VENCIMENTO END,
        @EMISSAO = CASE WHEN ORDEM = 3 THEN RET.TEXTO ELSE @EMISSAO END
    FROM RET

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 22 de abril de 2014 20:51
  • Eder,

    Acredito que o Gapimex esteja correto.

    Mas veja se estes exemplos podem ajudar:

    Declare @MinhaVariavel Int
    
    Set @MinhaVariavel = 1
    
    Declare @MinhaTabela Table
     (Codigo Int)
    
    Insert Into @MinhaTabela Values (1),(2),(3)
    
    Select * from @MinhaTabela
    
    Select Case Codigo
            When 1 Then @MinhaVariavel + 10
    		When 2 Then @MinhaVariavel + 2
    		When 3 Then @MinhaVariavel + 3
    	   End As Valores
    From @MinhaTabela
    
    Select Case @MinhaVariavel
            When 1 Then @MinhaVariavel + 2
    		When 2 Then @MinhaVariavel + 4
    		When 3 Then @MinhaVariavel + 6
    	   End Valores
    

    Se você estiver utilizando o SQL Server 2012, poderia tentar utilizando o comando IIF:

    Declare @MinhaVariavel Int
    
    Set @MinhaVariavel = 1
    
    Declare @MinhaTabela Table
     (Codigo Int)
    
    Insert Into @MinhaTabela Values (1),(2),(3)
    
    Select * from @MinhaTabela
    
    Select IIF(@MinhaVariavel <= 1, @MinhaVariavel + Codigo, @MinhaVariavel - 1) 'IIF - SQL Server 2012 ' From @MinhaTabela



    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    segunda-feira, 28 de abril de 2014 15:49