Oracle DB: Comment puis-je écrire une requête ignorant la casse?
Comme je l'ai écrit dans le titre, j'ai une requête SQL, exécutez sur Oracle DB, ce qui permet de dire:
SELECT * FROM TABLE WHERE TABLE.NAME Like 'IgNoReCaSe'
Si je voudrais, que la requête retourne soit "IGNORECASE", "ignorecase" ou combinaisons de comment cela peut-il être fait?
Est-ce possible?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la commande ALTER SESSION des états de définir comparaison insensible à la casse. Voir cette FAQ.
Pour tous ceux qui visitent 8 ans après cette réponse originale à cette question a été acceptée (pour 10gR2):
Après 10gR2, le
NLS_COMP
paramètre doit être `LINGUISTIQUE':Vous pouvez aussi remplacer inférieur supérieur.
Vous pouvez utiliser soit inférieur ou supérieur de la fonction sur les deux côtés de la condition
Vous pouvez également utiliser des Expressions Régulières:
Vous pouvez utiliser le haut() la fonction dans votre requête, et pour augmenter les performances, vous pouvez utiliser une fonction de base de l'indice de
Vous pouvez convertir des valeurs en majuscules ou en minuscules à l'aide de la
upper
oulower
fonctions:or
? Est-il possible pour la majuscule pour correspondre, mais en minuscules correspondent pas?or
de démontrer les deux options. Je ne pense pas que c'est possible qu'un match, mais pas dans l'autre....aussi faire de la conversion de la partie supérieure ou inférieure à l'extérieur de la requête:
...
Aussi, ne pas oublier l'évidence, les données dans les tables doivent avoir affaire? Vous ne pouviez insérer des lignes déjà en minuscules (ou de convertir la base de données existante lignes en minuscules) et être fait avec elle dès le début.