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