Lookup de Edição - Comando Select

Olá pessoal,

Seguinte, estou utilizando o seguinte SELECT no lookup:

Comando original no lookup:
SELECT cpgcod, sc_concat( ‘[’, cpgcod, '] - ', cpgdes
FROM web_gerencia.tbl_cgcpg
WHERE loccod = ‘[cEMPCOD]’ AND (cpgcrd IN (“Crediario”, “Cheque pre-datado”, “Retirada pagamento antecipado”, “Vista”))
ORDER BY cpgdes

Porém o SC 7 muda a vírgula das opções para concatenar na condição WHERE :

SELECT cpgcod, ‘[’||cpgcod||’] - '||cpgdes FROM web_gerencia.tbl_cgcpg WHERE loccod = ‘000001’ AND (cpgcrd IN (“Crediario”||“Cheque pre-datado”||“Retirada pagamento antecipado”||“Vista”) ORDER BY cpgdes

Qual o motivo do SC7 fazer esta mudança ?

Att,

Jocimar

Seguinte,

Mudei a condição de “IN” para “CASE” e funcionou:

SELECT cpgcod, sc_concat( ‘[’, cpgcod, '] - ', cpgdes
FROM web_gerencia.tbl_cgcpg
WHERE loccod = ‘[cEMPCOD]’ AND
CASE
WHEN cpgcrd = ‘Crediario’ THEN true
WHEN cpgcrd = ‘Cheque pre-datado’ THEN true
WHEN cpgcrd = ‘Retirada pagamento antecipado’ THEN true
WHEN cpgcrd = ‘Vista’ THEN true
ELSE false
END
ORDER BY cpgdes

Em particular entendi que o SC7 ao encontrar algo dentro de parênteses, faz concatenação entre as opções, sem importar-se o que está concatenando! Entendi como BUG!
Mais uma coisa, ao fazer a concatenação do que estava entre parênteses após o “IN”, ele também esqueçe de usar o parênteses que envolve as opções do “IN”, sendo necessário utilizar 2 fecha parênteses, ficam assim, ou seja você elimina o erro de execução fechando a condição do “IN” com 2 parênteses " )) ", aí não dá este erro, porém as opções ficam todas concatenadas.

Gostaria de uma posição da NetMake sobre isto, se devo esquecer de tentar utilizar o “IN” e utilizar apenas o CASE, ou se um dia isto será revertido, ou simplesmente por estou “comendo bola” na construção da condição!

Att,

Jocimar