Case com variavel
16/10/2019
0
SELECT *
FROM CARGA
WHERE (CASE WHEN :VARIAVEL = 2 THEN ('2', '7')
WHEN :VARIAVEL = 3 THEN ('3', '9', '10')
WHEN :VARIAVEL = 4 THEN '4'
WHEN :VARIAVEL = 5 THEN '5'
WHEN :VARIAVEL = 6 THEN '6' END) IN DIAENTREGA;
Rafael Gomes
Posts
18/10/2019
Emerson Nascimento
acredito que isto possa te ajudar (SQL SERVER):
select * from carga where (case @variavel when 2 then ' 2 / 3 ' when 3 then ' 3 / 9 / 10 ' when 4 then ' 4 ' when 5 then ' 5 ' when 6 then ' 6 ' else ' ' end) like '% '+diaentrega+' %'
note que há espaços entre todos os números retornados pelo CASE - por exemplo '_2_/_3_' - e também entre os percentuais. %_diaentrega_%
18/10/2019
Rafael Gomes
acredito que isto possa te ajudar (SQL SERVER):
select * from carga where (case @variavel when 2 then ' 2 / 3 ' when 3 then ' 3 / 9 / 10 ' when 4 then ' 4 ' when 5 then ' 5 ' when 6 then ' 6 ' else ' ' end) like '% '+diaentrega+' %'
note que há espaços entre todos os números retornados pelo CASE - por exemplo '_2_/_3_' - e também entre os percentuais. %_diaentrega_%
18/10/2019
Rafael Gomes
acredito que isto possa te ajudar (SQL SERVER):
select * from carga where (case @variavel when 2 then ' 2 / 3 ' when 3 then ' 3 / 9 / 10 ' when 4 then ' 4 ' when 5 then ' 5 ' when 6 then ' 6 ' else ' ' end) like '% '+diaentrega+' %'
note que há espaços entre todos os números retornados pelo CASE - por exemplo '_2_/_3_' - e também entre os percentuais. %_diaentrega_%
Boa tarde Emerson, consegui resolver da seguinte forma:
SELECT *
FROM CARGA
WHERE ( (:VARIAVEL = 2 AND AD_DIAENTREGA IN (2,8,9))
OR
(:VARIAVEL = 3 AND AD_DIAENTREGA IN (3,7,9))
OR
(:VARIAVEL = 5 AND AD_DIAENTREGA IN (5,9)) )
Clique aqui para fazer login e interagir na Comunidade :)