IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Requête Sql sensible à la casse


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 13
    Points
    13
    Par défaut Requête Sql sensible à la casse
    Bonjour,

    voila, j'aimerais trouver une fonction sql qui soit identique à un like '%MOTS%' mais qui soit sensible à la casse et au accents.....

    exemple: la phrase "Bonjour à vous"

    si je fais une recherche sur "bonjour", je ne dois rien trouver, mais si je fais une recherche sur "à" ou "Bonjour", je dois trouver !!!!

    quelqu'un a une idée?

  2. #2
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    J'ai peut être mal compris la question mais pour moi le LIKE est déjà sensible à la casse et aux accents...

    En prenant votre exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       WITH liste AS ( SELECT 'Bonjour à vous' phrase FROM DUAL )
     
        SELECT 'recherche1' FROM liste WHERE phrase LIKE '%bonjour%' 
        UNION 
        SELECT 'recherche2' FROM liste WHERE phrase LIKE '%Bonjour%' 
        UNION
        SELECT 'recherche3' FROM liste WHERE phrase LIKE '%à%'
    Cette requête ramène bien une ligne pour la 2e et 3e recherche et pas pour la première

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Cela dépend de la collation (jeux de caractères) utilisé par votre SGDB(R).

    Une collation pourra par exemple sensible aux accents mais pas à la casse, une autre sera sensible aux deux et une troisième à aucun.

    C'est à choisir avec attention.

    EDIT : Plein d'infos ici
    Kropernic

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Bibeleuh Voir le message
    J'ai peut être mal compris la question mais pour moi le LIKE est déjà sensible à la casse et aux accents...
    Ca c'est du grand n'importe quoi !!!!

    le LIKE, comme tout opérateur ou fonction SQL doit obéir à la collation spécifiée par les littéraux passés en argument...

    je sais que certains pseudo SGBD non relationnels comme MySQL sont farcis de bugs de ce genre, mais pas la langage SQL !

    Donc, si vous voulez gérer la casse ou les caractères diacritiques (accents, ligature...), ainsi que que le tri relatif à la langue, il suffit d'utiliser la bonne collation.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaColonne COLLATE French_CS_AI LIKE '%toto%'
    À me lire :
    http://sqlpro.developpez.com/cours/s...er/collations/
    http://sqlpro.developpez.com/cours/s.../?page=partie1
    http://blog.developpez.com/sqlpro/p1..._grand_folklor

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [AC-2007] Requête SQL VBA sensible à la casse
    Par SorenIX dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/07/2013, 15h31
  2. Recherche SQL sensible à la casse
    Par vnk600 dans le forum Débuter
    Réponses: 1
    Dernier message: 14/12/2009, 01h42
  3. Requête et sensible à la casse
    Par bard123 dans le forum JPA
    Réponses: 3
    Dernier message: 20/08/2008, 10h22
  4. [Requête] SELECT sensible à la casse
    Par joefou dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2006, 14h23
  5. requête SQL un peu casse tête
    Par hellbilly dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/12/2005, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo