Comment pouvez-vous trouver un littéral signe de pourcentage (%) dans PostgreSQL à l'aide d'une requête?
J'ai character varying
entrées dans une table où certains (pas tous) des 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 termine avec un signe de pourcentage ('%'
).
N'oubliez pas que les traits de soulignement et les barres obliques inverses également besoin de s'échapper.
OriginalL'auteur magnus | 2015-10-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer comme ceci:
Format
standard_conforming_strings
option désactivé (peut être vérifiée parshow standard_conforming_strings;
), vous devez double-barres obliques inverses:SELECT * FROM my_table WHERE my_column LIKE '%\\%%' ESCAPE '\\';
Et dans les deux cas (quel que soitstandard_conforming_strings
), vous pouvez utiliser échapper à la syntaxe de la chaîne de avec a doublé des barres obliques inverses:SELECT * FROM my_table WHERE my_column LIKE E'%\\%%' ESCAPE E'\\';
OriginalL'auteur Rahul Tripathi
Vous avez pour échapper à la traduction littérale du signe%. Par défaut, le caractère d'échappement est la barre oblique inverse:
Dans ce cas, le premier
%
signe correspond à une séquence de démarrage dansmy_column
. Le reste\%
sont interprétés comme un littéral caractère%. La combinaison est donc: correspondent à rien de ce qui se termine par un caractère%.SQLFiddle
OriginalL'auteur Patrick
J'ai fini par utiliser des expressions régulières:
Cependant, je voudrais encore savoir si c'est possible à l'aide de la
LIKE
/opérateur de comparaison.OriginalL'auteur magnus