top of page

SAP Business One - Like command in Hana database

Foto do escritor: expertb1expertb1

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;


427 visualizações0 comentário

Posts recentes

Ver tudo

Comments


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