NeoGsheet query no distingue entre minusculas y mayúsculas - Forum

Forum Navigation
You need to log in to create posts and topics.

NeoGsheet query no distingue entre minusculas y mayúsculas

Hola gente:

Estuve experimentando con este plugin y la verdad es muy bueno!, aunque lo he podido utilizar sin problemas si que me surgieron dudas después de efectuar algunas consultas con QUERY y creo que una de las más importantes que no leí en la documentación oficial es la posibilidad de realizar una consulta en la que no se distingan mayúsculas y minúsculas. Para dar un ejemplo:

where D like '%[buscar]%'

Si en la base hay un campo en la columna D con el valor: "Programa visualneo" y buscar="Programa" la consulta devuelve correctamente, incluso si es "visualneo" ya que para eso funcionan las %. Ahora bien, si busco "programa" la consulta devuelve 0 resultados. He intentado solucionarlo con un código que cambia la primera letra a mayusc (capitaliza) y funciona en caso de que la mayúscula sea solo la primera. A lo que realizo la consulta de esta manera:

Select * where D like '%[buscar]%' or D like '%[buscar2]%'

El tema es si la cosa cambia y hay dos palabras o tres, ahí me detuve a pensar que lo mejor es que sea la consulta la que me entregue datos ajeno a cómo escriba lo que quiero buscar pero no he encontrado la forma en la documentación oficial.

Muchas gracias!!

@palamar aquí hay una referencia completa del lenguaje de Querys para GSheets:

Saludos!

@palamar

Try ...

StrUpper "[search]" [upperSearch]

... just before your  ...

select * where upper(D) like '%[upperSearch]%'

 

 

luishp has reacted to this post.
luishp
Quote from luishp on September 10, 2021, 7:03 pm

@palamar aquí hay una referencia completa del lenguaje de Querys para GSheets:

Saludos!

Gracias @luishp he podido ver solo una referencia al tema y justamente menciona que no es posible buscar como quiero ya que el Query es CaseSensitive y por lo que veo no es posible desactivar esto, una pena. Creo que evitando las comillas no serían tomados como literales pero si saco las comillas no funciona el comando.

Identifiers and string literals are case-sensitive. All other language elements are case-insensitive.

 

Quote from Gaev on September 11, 2021, 7:22 pm

@palamar

Try ...

StrUpper "[search]" [upperSearch]
StrUpper "[search]" [upperSearch]
StrUpper "[search]" [upperSearch]

... just before your  ...

select * where upper(D) like '%[upperSearch]%'
select * where upper(D) like '%[upperSearch]%'
select * where upper(D) like '%[upperSearch]%'

 

 

Gracias @Gaev pero no es ese el problema básico que estoy teniendo ya que el mismo no solucionaría casos como: "Hola, HOla, hOLa". Por más que existiera la palabra "holA" el sistema jamás la encontraría.

 

Saludos!

@palamar

that is not the basic problem I am having since it would not solve cases like: "Hello, HOla, hOLa". As much as the word "holA" existed, the system would never find it.

Something must be getting lost in translation because I am confused.

Can you tell us ...

a) the exact value of the [search] variable
b) the row values that should match
c) the row values that should not match

 

@gaev

El problema se da con cualquier palabra cuyas letras varíen entre minúsculas y mayúsculas.

Ejemplo:

  • Quiero buscar: "visualneo" en la columna A por lo que la variable [búsqueda] = "visualneo"
  • En la columna A  de la planilla se encuentra "VIsualNeo"

En este caso tengo que buscar "VIsualNeo" de otra manera la consulta no devolverá resultados.

Me explico?

@palamar

After much investigation, I found the problem ... if you try and specify the query string directly in the third parameter, like so ...

neoGSheetsLoad "[sheetURL99Selection]" [gkdata99] "Select * where upper(B) like '%[upperSearch]%'" "gkSubroutine99"

 

... it is problematic ... but it works if you code like this ...

neoGSheetsLoad "[sheetURL99Selection]" [gkdata99] "Select * where upper(B) like '%VISUALNEO%'" "gkSubroutine99"

 

So, the workaround is to specify a [variable], which you pre-populate, like so ...

StrUpper "[mySearch]" [upperSearch]

SetVar "[queryString99]" "Select * where upper(D) like '%[upperSearch]%'"


... clear any previous values
SetVar "[resultString99]" ""
SetObjectHTML "ResultString99" "[resultString99]"

neoGSheetsLoad "[sheetURL99Selection]" [gkdata99] "[queryString99]" "gkSubroutine99"

... let me know if this works for you too

 

luishp, Darbdenral and Palamar have reacted to this post.
luishpDarbdenralPalamar

Pues sí que funciona @Gaev, he solucionado el sistema al menos por ahora. La verdad esto tiene mucha potencia y como ya se dijo abre muchísimas posibilidades.

Muchas Gracias por la ayuda!