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
.
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 operadorLIKE
. Se intentó la sintaxis de la consulta, pero dio como resultado un error de sintaxis. La consulta se muestra a continuación: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: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.