top of page

SAP Business One - Like command in Hana database

  • Foto do escritor: expertb1
    expertb1
  • 5 de set. de 2021
  • 1 min de leitura

Como o Hana é CASE SENSITIVE, isto é, diferencia maiúsculas e minúsculas, o comando LIKE precisa ser adaptado quando utilizado.


Exemplo:

Caso tenha os clientes ARTEFATOS BRASIL e Brasil Seguros, com o comando LIKE '%brasil%' o resultado será zero registros.

Caso use LIKE '%Brasil%' localizará apenas 1 registro.

Caso use LIKE '%BRASIL%' localizará apenas 1 registro.


Como resolver este caso?


No gerente de consultas crie a consulta exatamente como segue abaixo (inclusive com o texto comentado).


/*SELECT T0."CardName" AS "Nome do PN" FROM "ocrd" T0 WHERE T0."CardName" Like '[%1]'*/


SELECT "CardName", "CardCode", "CardType" FROM "OCRD" WHERE UPPER("CardName") like '%' || UPPER ('[%1]') || '%'

order by 1;


Após, execute a consulta e informe no parâmetro o texto "brasil" (tudo minúsculo). O resultado buscará parceiros de negócios com a palavra "brasil" independente de como foram escritas.


Por que?

O segredo está no WHERE onde igualamos o campo a ser pesquisado "CardName" com o termo pesquisado. Em ambos adicionamos a função UPPER, isto é, deixe como maiúsculo. Logo, o UPPER("CardName") no momento da pesquisa tornou todos os PN com seu nome em maiúsculo. Já o parâmetro %1 teve seu conteúdo digitado pelo usuário também como maiúsculo -> LIKE '%' | UPPER ('[%1]') || '%'




Observação - o comando abaixo também atenderá o requisito de busca por conteúdo independente de ser maiúscula ou minúscula.


/*SELECT T0."CardName" AS "Nome do PN" FROM "ocrd" T0 WHERE T0."CardName" Like '[%1]'*/


SELECT "CardName", "CardCode", "CardType" FROM "OCRD" WHERE CONTAINS("CardName",'%[%1]%')

order by 1;


 
 
 

Comments


  • Instagram
  • LinkedIn ícone social
  • iconeWhats
  • Nosso Canal com Dicas Rápidas
bottom of page