es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL encontrar ‘%s’ entre %s

Necesito encontrar (excluir de hecho) cualquier resultado que contenga el signo '%', en cualquier parte de un campo de texto. Eso significaría ... WHERE string LIKE '%%%'. Al buscar escapar, me dieron las siguientes ideas. La primera da un error de sintaxis, la segunda devuelve filas pero hay registros que realmente contienen el signo '%'.

1ra:

SELECT * FROM tabla
WHERE string NOT LIKE '%!%%' ESCAPE '!'
///intenté con diferentes caracteres de escape

2da:

SELECT * FROM tabla
WHERE string NOT LIKE '%[%]%'

Probando en GCP BigQuery.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnologías de la información especializado en SQL y Google BigQuery, la tarea consiste en encontrar y excluir cualquier resultado que contenga el signo '%', sin importar dónde aparezca en un campo de tipo cadena. Después de investigar sobre el escapado de caracteres, se probaron dos ideas diferentes.

    La primera idea consistió en utilizar la función ESCAPE con un carácter de escape elegido para ayudar a excluir los resultados que contienen el signo '%' del operador LIKE. Se intentó la sintaxis de la consulta, pero dio como resultado un error de sintaxis. La consulta se muestra a continuación:

    SELECT * FROM table
    WHERE string NOT LIKE ''%!%%'' ESCAPE '!'
    --se intentó con diferentes caracteres de escape
    

    La segunda idea utilizada consistió en utilizar clases de caracteres para excluir los resultados con el signo '%'. El signo % es un carácter comodín que coincide con cero o más caracteres. La consulta utilizó [ ] para definir un conjunto de caracteres a excluir, en este caso, el signo %. La sintaxis de la consulta fue exitosa, pero al verificar las filas devueltas, se encontraron registros que, de hecho, contenían el signo '%'. La consulta se muestra a continuación:

    SELECT * FROM table
    WHERE string NOT LIKE ''[%]%''
    

    A medida que avanza la tecnología, el uso de caracteres de escape o clases de caracteres puede diferir de una tecnología a otra. Sin embargo, se debe realizar más investigación y pruebas de diferentes métodos para excluir correctamente los resultados que contienen ciertos caracteres en campos de tipo cadena en la plataforma Google BigQuery.

Comments are closed.