J'ai character varying
entrées dans un tableau où certaines (pas toutes) les valeurs contiennent des pourcentages, par exemple, '12%'
, '97%'
, etc. Je veux trouver toutes les valeurs qui contiennent des pourcentages. En d'autres termes, je veux trouver toutes les valeurs qui se terminent par un signe de pourcentage ('%'
).
Vous pouvez essayer comme ceci:
SELECT * FROM my_table WHERE my_column LIKE '%\%%' ESCAPE '\';
Format
<like predicate> ::=
<match value> [ NOT ] LIKE <pattern>
[ ESCAPE <escape character> ]
<match value> ::= <character value expression>
<pattern> ::= <character value expression>
<escape character> ::= <character value expression>
Vous devez échapper au signe% littéral. Par défaut, le caractère d'échappement est la barre oblique inverse:
SELECT * FROM my_table WHERE my_column LIKE '%\%';
Dans ce cas, le premier %
signe correspond à n'importe quelle séquence de départ dans my_column
. Le reste \%
sont interprétés comme un caractère% littéral. La combinaison est donc: correspond à tout ce qui se termine par un caractère%.
J'ai fini par utiliser des expressions régulières:
select * from my_table where my_column ~ '%$';
Cependant, je voudrais quand même savoir si c'est possible en utilisant l'opérateur/comparaison LIKE
.