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 :

comment faire un substring avec un caractère particulier ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut comment faire un substring avec un caractère particulier ?
    Bonjour,

    j'ai des enregistrements de ce genre dans ma table TEMP :
    ID TEXTE
    1 "Frais m�dicaux"
    2 "D�c�s"

    Je voudrais faire une requête qui me retrouve toutes les entrées avec ce caractère spécial, j'ai donc fait cela :
    select * from TEMP where TEXTE like '%�%' ------> ne retourne aucune ligne
    select * from TEMP where TEXTE like '%'+(select substring(TEXTE, 8, 1) from TEMP where ID=1)+'%' ------> retourne toutes les lignes (même celles qui n'ont pas ce caractère spéciale)

    Je veux en effet pouvoir les corriger ensuite à la main (car pour une raison inconnue, que ce soit les "é"/"è"/"à" ont indistinctement été remplacé par le même caractère spéciale '�')
    Merci pour votre aide,

  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
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Ce n'est pas un caractère particulier, mais un affichage parce que vous avez introduit des caractères illicite. Il faut donc travailler en binaire en convertissant les littéraux en VARBINARY puis en corrigeant le binaire.

    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 éclairé
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    Merci pour la piste.

    Mais quand je veux convertir en varbinary, j'obtiens
    "Error converting data type nvarchar to varbinary"
    car justement il y a un problème dans certains de mes varchar je suppose ?

    Je fais :
    select CONVERT(VARBINARY(300), TEXTE, 1) from TEMP -- (TEXTE est un varchar(300))
    Est-ce que le conversion doit se faire différemment ? Avec un cast ? Avec une autre valeur dans la longueur du varbinary ?
    Merci pour les précisions,

Discussions similaires

  1. comment faire un setfocus avec before update ?
    Par mat75019 dans le forum Access
    Réponses: 7
    Dernier message: 14/04/2006, 11h22
  2. Comment faire un random avec un min et un max
    Par crocodingo dans le forum C++
    Réponses: 3
    Dernier message: 06/04/2006, 11h19
  3. [JDBC][Access] comment faire un lien avec la BD
    Par pmartin8 dans le forum JDBC
    Réponses: 4
    Dernier message: 19/10/2005, 14h35
  4. comment faire un sphère avec une texture ?
    Par fregate dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/09/2005, 03h37
  5. [INDY] comment faire un 'POST' avec idHTTP??
    Par gamez dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/05/2004, 19h02

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