Tenho uma tabela de fatos que contém valores de licença médica para funcionários (Tabela 1) e preciso inserir cada valor em uma das faixas (Tabela 2)
O problema é que a tabela de fatos contém alguns valores negativos que representam bandas não numéricas. Esses valores são -6666,-7777,-8888,-9999 e não posso usar um operador between para eles porque eles também serão pegos na primeira banda na Tabela 2.
É possível usar uma instrução case para alterar o operador para esses valores? Algo assim:
SELECT * FROM SickLeave lv
INNER JOIN SickLeaveBands lb
ON
CASE WHEN lb.SickLeave in (-6666,-7777,-8888, -9999)
THEN lb.SickLeave = MinHours
ELSE lb.SickLeave BETWEEN MinHours AND MaxHours
END
Consegui contornar isso unindo usando uma consulta de união para o lado direito da junção, mas existe uma solução mais simples que também evite o uso de SQL dinâmico?