none
where case when passando Parametro. RRS feed

  • Pergunta

  • Boa pessoal, estou com uma duvida estou tentando passar um parâmetro mas não tenho resultado.

    Gostaria de pedir uma força e me mostem aonde estou errando.

    declare @M1 varchar , @M2 varchar; set @M1 = '35BA'; set @M2 = 'AR1D';
    
    SELECT * FROM Tbl_DiretP as td left join Tbl_DiretizPAp as TDA on 
    td.id = TDA.Id_DiretP where tda.Modelo = 
    CASE WHEN TDA.AfetaAMC = 'A' then @M1 when TDA.AfetaAMC = 'M' then @M2 end  

    Quando eu substituo o @M1 e @M2 pelos valores setados roda de boa. 

    Att, Wsti.

     
    terça-feira, 12 de abril de 2016 03:38

Respostas

  • Bom dia Wsti,

    Voce nao esta especificando o tamanho no varchar na declaração da variavel,

    quando nao especificado ele assumi o valor de varchar(1).

    Troque por um tamanho fixo, tipo varchar (100);

    Att

    Reginaldo Silva

    • Sugerido como Resposta André Santo terça-feira, 12 de abril de 2016 12:43
    • Marcado como Resposta Wsti terça-feira, 12 de abril de 2016 17:03
    terça-feira, 12 de abril de 2016 11:23

Todas as Respostas

  • Bom dia Wsti,

    Voce nao esta especificando o tamanho no varchar na declaração da variavel,

    quando nao especificado ele assumi o valor de varchar(1).

    Troque por um tamanho fixo, tipo varchar (100);

    Att

    Reginaldo Silva

    • Sugerido como Resposta André Santo terça-feira, 12 de abril de 2016 12:43
    • Marcado como Resposta Wsti terça-feira, 12 de abril de 2016 17:03
    terça-feira, 12 de abril de 2016 11:23
  • Reginaldo Obrigado pela resposta. Me ajudou muito.

    Funcionou certinho.

    Abraços.

    terça-feira, 12 de abril de 2016 17:03