Jump to content
Sign in to follow this  
fernandolk_1992

Parametro entrada com mais de um valor

Recommended Posts

Bom dia.

Pessoal, estou fazendo uma consulta SQL e nela inclui um campo que deve ser incluído pelo usuário, porem nesse filtro de entrada ele permite utilizar apenas um único valor.

No meu exemplo eu preciso listar os códigos do projeto 540 e 542, porem quando coloco os 2 códigos o relatório aparece em branco, se eu colocar os códigos individuais a consulta retorna os dados.

No momento deixei o código para filtrar dessa forma:

AND MPRJ.CODPRJ LIKE '%' + :PROJETO + '%'

porem já tentei com o IN, =, LIKE e mesmo assim não consigo fazer o filtro que preciso.

Em anexo está o print com a tela de entrada.

Como faço para que o sistema entenda que deve filtrar os 2 projetos (ou mais) conforme a necessidade do usuário?

parametros.jpg

Share this post


Link to post
Share on other sites

@fernandolk_1992, boa noite!

Existem algumas formas de resolver essa questão... criando vários parâmetros de entrada, exemplo projeto 1, 2, 3 ...assim limitando a quantas forem criadas na query.

Porém, a maneira que "eu" utilizo (possível solução) é a seguinte, com SQLServer (Compatibility level < 130): 

Crio uma CTE para efetuar um split do parâmetro, essa função do split é do incrível Dirceu Resende Como quebrar um string em uma tabela de substrings utilizando um delimitador no SQL Server - Dirceu Resende, depois envolvo a query em uma CTE e utilizo um JOIN para continuar a query.

Conforme imagem:

image.png

Texto da query 

Essa é uma das formas, porém , existem formar mais fácies, por exemplo a utilização da função nativa  STRING_SPLIT STRING_SPLIT (Transact-SQL) - SQL Server | Microsoft Docs, contudo o nível de compatibilidade do banco deve ser maior que (130).

Olha que simples...

image.png

Porém a aplicação não aceita ainda o "Compatibility level" acima de 120...

Espero ajudar.

Abraços.

 

TEXTO_QUERY.sql

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.