Pregunta

SELECT count (*) de la tabla donde la columna ilike '% /%';

me da el número de valores que contienen "/"

¿Cómo hacer lo mismo por "\"?

¿Fue útil?

Solución

SELECT  count(*)
FROM    table
WHERE   column ILIKE '%\\\\%';

Otros consejos

Extracto de la docs :

  

Tenga en cuenta que la barra invertida ya tiene un significado especial en los literales de cadena, por lo que para escribir una constante patrón que contiene una barra invertida debe escribir dos barras invertidas en una instrucción SQL (suponiendo sintaxis de cadena de escape se utiliza, véase la Sección 4.1.2.1). Por lo tanto, escribir un patrón que en realidad coincide con una barra invertida literal significa escribir cuatro barras invertidas en el comunicado. Esto se puede evitar mediante la selección de un carácter de escape diferente con ESCAPE; a continuación, una barra invertida no es especial que gustar más. (Sin embargo, todavía es especial para el programa de análisis literal de cadena, por lo que aún necesita dos de ellos.)

mejor aún - no utilice como, sólo tiene que utilizar la posición estándar:

select count(*) from from table where 0 < position( E'\\' in column );

Es necesario E'\\\\' porque el argumento de LIKE es una expresión regular y expresiones regulares de escape carbón ya está \ (por ejemplo ~ E'\\w' concordaría con cualquier cadena que contiene un char imprimible).

Vea la doc

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top