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 :

Formatter un Numéro de Téléphone


Sujet :

Langage SQL

  1. #1
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut Formatter un Numéro de Téléphone
    Bonjour à Tous,

    J'ai dans une table des numéros de téléphone en format chaine de caractère. Par exemple '0032 477102233' ou encore '0477102233'.

    Je dois restituer dans une vue ces mêmes numéros sous le format '+32 477 10 22 33'.

    Auriez-vous une idée de comment faire ?

    J'avais pensé :

    1)récupérer uniquement les nombres (en cas d'espace ou autres caractères non numériques.
    2)de cette chaîne de chiffre, récupérer les 9 derniers.
    3) ajouter par defaut le +32

    4) appliquer un format "personnalisé"

    Mais je vous avoue "patauger" et ne pas y arriver seul.

    Merci d'avance pour votre aide.
    MFoxy
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  2. #2
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 316
    Points : 453
    Points
    453
    Par défaut
    un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT '0032+' + RIGHT(TRIM(Notel)),9)

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Le masque d'affichage dépend du pays d'enregistrement du numéro de téléphone.

    Si les numéros enregistrés correspondent à plusieurs pays, il faut en tenir compte.

    Voir cet article : https://fr.wikipedia.org/wiki/Num%C3...A9l%C3%A9phone

  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 770
    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 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Le mieux est de créer une UDF pour cela.
    Exemple pour Microsoft SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR ALTER FUNCTION F_FORMAT_TEL (@TEL VARCHAR(32))
    RETURNS VARCHAR(32)
    AS
    BEGIN
       SET @TEL = REPLACE(@TEL, ' ', '');
       IF LEFT(@TEL, 2) = '00'
          RETURN '+' + FORMAT(CAST(RIGHT(@TEL, LEN(@TEL) - 2) AS bigint), '## ### ## ## ##');
       RETURN '+32 ' + FORMAT(CAST(@TEL AS bigint), '### ## ## ##');
    END;
    GO
    Test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dbo.F_FORMAT_TEL('123 45 67 89') 
    SELECT dbo.F_FORMAT_TEL('0032 123456789')
    +32 123 45 67 89
    +32 123 45 67 89

    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. Récupérer le numéro de téléphone entrant
    Par louisss dans le forum Access
    Réponses: 23
    Dernier message: 26/07/2023, 18h21
  2. récuperation d'un numéro de téléphone
    Par herzleid dans le forum Delphi
    Réponses: 4
    Dernier message: 17/07/2007, 09h25
  3. Formatter un numéro de téléphone
    Par Zfred dans le forum Ruby
    Réponses: 8
    Dernier message: 11/07/2007, 19h24
  4. Identification de numéros de téléphone
    Par sfxElrick dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 17/03/2005, 18h40
  5. Insérer un numéro de téléphone
    Par Fleep dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 31/10/2004, 09h20

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