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

SQL Oracle Discussion :

Chaine de caractères [12c]


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Par défaut Chaine de caractères
    Bonjour , voici mon soucis
    j'ai deux tables avec les données suivantes :

    table 1 avec un champ qui peut contenir un nombre de 1 à 9999
    table 2 avec un champ qui peut contenir un nombre de 1 à 9999 mais parfois ce nombre peut se terminer par une lettre ex 12B , 789A , 789C

    Je cherche à comparer les deux champs , seulement avant je dois enlever le dernier caractère du champ de la table 2 si seulement celui-ci se termine par une lettre

    pax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1,table2 where champ1 = champ2
    pour le champ 2 comment je dois tester l 'existence d'une lettre à la dernière position et ne conserver que la partie qui contient le chiffre pour juste le comparer au champ1

    table1 , valeur : 12, 14,15,18,568,789
    table2 , valeur : 12A,145,18C,568Z,800,14

    Comment je peux retourner la valeur 12,18 ,568 et 14 ( qui lieu de contient pas de lettre)

    Merci de votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 176
    Par défaut
    Bonjour,

    Tu peux utiliser la fonction regexp_replace pour supprimer les caractères non-numériques:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1,table2 where champ1 = regexp_replace(champ2, '[^[:digit:]]+')

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Si la demande est juste d'enlever 1 lettre en fin de chaine (et pas toutes les lettres de la chaine), alors la requête est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN NVL(RTRIM(champ2, '0123456789'), 'A') = champ2 THEN SUBSTR(champ2, 1, LENGTH(champ2)-1) ELSE Champ2 END

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 19/11/2004, 23h04
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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