Quelle est la liste complète de tous les caractères spéciaux pour une clause LIKE SQL (je suis intéressé par SQL Server mais d'autres seraient bons aussi) ?
Par exemple
SELECT Name FROM Person WHERE Name LIKE '%Jon%'
- %
- _
- [spécificateur] Par exemple, [a-z].
- [^spécificateur]
- Clause ESCAPE Par exemple, %30!%%' ESCAPE '!' évalue 30% comme vrai.
- Les caractères ' doivent être échappés avec '. Par exemple, "ils" deviennent "ils".
-
%
- Toute chaîne de zéro ou plus caractères. -
_
- Tout caractère unique - Clause ESCAPE Par exemple, %30!%%' ESCAPE '!' évalue 30% comme vrai.
-
%
- Toute chaîne de zéro ou plus caractères. -
_
- Tout caractère unique - Clause ESCAPE Par exemple, %30!%%' ESCAPE '!' évalue 30% comme vrai.
Sybase
- %
- _
- [spécificateur] Par exemple, [a-z].
- [^spécificateur]
-
%
- Toute chaîne de zéro ou plus caractères. -
_
- Tout caractère uniqueGuide de référence ici [PDF]
-
%
- Toute chaîne de zéro ou plus caractères. -
_
- Tout caractère unique - Clause ESCAPE Par exemple, %30!%%' ESCAPE '!' évalue 30% comme vrai.
- %
- _
- Un personnage d'ESCAPE seulement si spécifié .
PostgreSQL dispose également de la fonction SIMILAR TO
qui ajoute ce qui suit :
[specifier]
[^specifier]
-
|
- l'une des deux possibilités suivantes -
*
- répétition de l'élément précédent zéro fois ou plus. -
+
- répétition de l'élément précédent une ou plusieurs fois. -
()
- regrouper des éléments
L'idée est d'en faire un wiki communautaire qui puisse devenir un "guichet unique".
0 votes
Il est probablement utile de mentionner la clause de sauvegarde. SQL Server, Oracle et MySQL la prennent tous en charge. Je ne sais pas pour Sybase.
0 votes
Je pense maintenant que la clause ESCAPE est un standard SQL et qu'elle ne doit être mentionnée qu'une seule fois.
0 votes
Je ne suis pas sûr moi-même qu'il soit implémenté dans tous les serveurs listés (et tous ceux qui pourraient être ajoutés plus tard) donc je suis réticent à le sortir dans une section "Tout support". Si vous êtes sûr qu'ils sont tous supportés, allez-y.
0 votes
N'oubliez pas d'échapper le caractère d'échappement lui-même...
0 votes
Deux commentaires. Premièrement, Microsoft SQL provient initialement de Sybase, la ressemblance n'est donc pas fortuite. Deuxièmement, l'échappement d'un guillemet simple par un autre n'est pas limité à
LIKE
; par exempleWHERE familyname = 'O''Toole'
. Troisièmement, leSIMILAR TO
introduit une sorte d'expression régulière hybride, qui possède ses propres caractéristiques (et beaucoup plus de caractères spéciaux), et ne devrait donc probablement pas être incluse ici. Je suppose que cela fait 3 commentaires, mais personne ne s'attend à l'Inquisition espagnole.