Tempo aproximado para leitura: 00:01:00 min
Dúvida
Como utilizar a cláusula IN no cadastro de consulta SQL?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha RM) - RM BI - Todas as Versões
Solução
O menu visão de dados do RM possui uma limitação na utilização do operador IN utilizando o padrão lista de expressões.
Sendo assim para obter o resultado esperado, vamos estruturar uma sub consulta utilizando a função STRING_SPLIT. Resumidamente essa função quebra uma string em linhas de registro, a partir de um caractere definido como separador.
Importante
Os valores na pesquisa poderão estar separados por um carácter definido na função string_split (no exemplo acima, uma vírgula), sem a necessidade do uso de aspas ou parênteses.
A função STRING_SPLIT requer que o nível de compatibilidade seja de pelo menos 130. Quando o nível é menor que 130, o SQL Server não consegue localizar a função STRING_SPLIT.
- Segue abaixo exemplo de query a ser utilizada, onde o parâmetro que receberá os múltiplos valores deve estar dentro da função STRING_SPLIT juntamente com o caractere separador, nesse caso a vírgula (,):
SELECT CHAPA,NOME FROM pfunc WHERE CHAPA IN (SELECT [value] AS parametro FROM STRING_SPLIT(:chapa, ','))
Resultado de execução da sentença utilizando a cláusula IN:
Resultado de execução da sentença utilizando a cláusula NOT IN:
Saiba mais
Mais detalhes no link Criação de Consultas SQL
1 Comentários