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 :

Remplacement "sioux" en SQL


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Points : 89
    Points
    89
    Par défaut Remplacement "sioux" en SQL
    Bonjour,

    Comment feriez-vous en SQL pour effectuer des remplacements massifs, comme ce qu'on peut faire avec sed dans un fichier texte. Par exemple :

    s/\(.*\)-\(.*\)/\2-\1/

    permet de permuter des données séparées par un tiret (toto-tata donne tata-toto).

    J'aimerais définir un update du genre en SQL.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Si votre demande est juste d'intervertir par rapport à un tiret il n'y a pas de problème à condition de n'avoir au maximum qu'un seul tiret dans votre chaîne.

    Si les conditions peuvent sont plus complexes ou variables, il faudra utiliser des expressions régulières et ce n'est pas implémenté dans tous les SGBD.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Points : 89
    Points
    89
    Par défaut
    Je n'ai donné qu'un exemple, la vraie question c'est est-ce qu'on peut faire des remplacements avec expression régulière en SQL de base.
    La réponse est apparemment que non

    Dans ce cas, est-ce qu'on peut le faire sur une base Access?

    Est-ce que vous avez une syntaxe SQL pour, par exemple, remplacer "TOTO" par "TATA" dans une zone A d'une table TABLE ?

    (actuellement, pour faire un truc comme ça, je passe par EXCEL, puis je passe ma colonne dans un fichier et je lance sed pour modifier les données, puis je repasse sur EXCEL et enfin sur ACCESS)

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Oui remplacer TOTO par TATA se fait avec la fonction Replace.
    Mais Access n'est pas vraiment le SGBD le plus performant, le mieux c'est de chercher dans la documentation.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Points : 89
    Points
    89
    Par défaut
    OK, c'est replace que je connaissais pas. Je croyais qu'il fallait faire un update avec un mot réservé pour les anciennes valeurs, un truc du genre.

    Merci

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

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