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

Développement SQL Server Discussion :

[SQLserver 2005] Quote et % dans un LIKE


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 150
    Par défaut [SQLserver 2005] Quote et % dans un LIKE
    Bonjour,

    J'essaie sans succès dans le "management studio" de faire un SELECT avec un LIKE.

    Exemple:

    soit la table "toto" avec une colonne montexte qui est de type varchar(4000). J'arrive à insérer des enregistrements qui contiennent une quote (') en la doublant. [je vérifie bien en ouvrant la table dans le manager les données y sont]

    Ensuite je fais SELECT * from toto where montexte LIKE '%''%' ça me renvoie toujours 0 enregistrements (mais pas d'erreur).

    Inversement si je cherche un enregistrement qui contient un '%' ça me renvoie tous les enregistrements de la table avec un LIKE '%%%%' ou LIKE '%%%'

    Quelle est la bonne syntaxe pour obtenir le bon résultat ?

    EDIT: pour % je viens de trouver il faut écrire LIKE '%[%]%' ... pour ' ça ne marche pas par contre
    EDIT2: même avec la fonction CHARINDEX('''',montexte)>0 ça ne renvoie rien


  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    Cela marche parfaitement...

    Démonstration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    USE tempdb;
     
    CREATE TABLE TOTO (C VARCHAR(32));
     
    INSERT INTO TOTO VALUES ('aujourd''hui'), ('rien');
     
    SELECT * FROM TOTO where C LIKE '%''%'
     
    C
    --------------------------------
    aujourd'hui
    Évidemment si vous passez par une interface graphique à la con ne vous étonnez pas d'obtenir... des conneries !

    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/ * * * * *

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 150
    Par défaut
    Pas de bol pour vous je viens de trouver la solution tout seul comme un grand: il faut appliquer le SP4 de sqlserver 2005 qui corrige entre autre ce bug (je viens de tester).

    J'avais un service pack de retard.
    Toujours aussi au point les usines à gaz de chez oncle billoute ça me rappelle des versions de drivers ODBC JET tous plus buggés les uns que les autres il y a quelques années

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur suite à un select MAX() dans sqlserver 2005
    Par thor76160 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2009, 10h17
  2. problème de requette dans sqlserver 2005
    Par mbello dans le forum Développement
    Réponses: 3
    Dernier message: 27/11/2008, 14h19
  3. Réponses: 0
    Dernier message: 08/09/2008, 13h46
  4. Réponses: 7
    Dernier message: 14/08/2008, 20h40
  5. Réponses: 3
    Dernier message: 03/10/2007, 13h40

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