Domanda

SELECT count (*) FROM tabella WHERE colonna ilike '% /%';

mi dà il numero di valori contenente "/"

Come fare lo stesso per "\"?

È stato utile?

Soluzione

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

Altri suggerimenti

docs :

  

Si noti che la barra inversa ha già un significato speciale in stringhe letterali, in modo da scrivere un costante modello che contiene una barra inversa è necessario scrivere due barre rovesciate in un'istruzione SQL (assumendo sintassi stringa di escape viene utilizzato, si veda la Sezione 4.1.2.1). Così, scrivendo un modello che corrisponde in realtà una barra rovesciata letterale significa scrivere quattro barre inverse nell'istruzione. È possibile evitare questo selezionando un carattere di escape diverso con ESCAPE; poi un backslash non è speciale per piace più. (Ma è ancora speciale al parser letterale di stringa, quindi è ancora bisogno di due di loro.)

meglio ancora - non utilizzare come, basta usare posizione standard:

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

È necessario E'\\\\' perché l'argomento per LIKE è una regex e regex fuga char è già \ (es ~ E'\\w' sarebbe adattarsi a qualsiasi stringa contenente un carattere stampabile).

Vedere la doc

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top