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 Firebird Discussion :

Gestion de la suppression des espaces dans les chaines de caratères et Mise en forme


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Gestion de la suppression des espaces dans les chaines de caratères et Mise en forme
    Bonsoir a tous

    J'aimerai savoir s'il existe une méthode (fonction) qui permettrai de supprimer les espaces en trop et fin de chaine.
    Exemple :
    chaine source :
    latif_ _devalender_
    chaine a obtenir :
    l
    latif_ devalender
    j'aimerais aussi savoir s'il es possible de simuler la fonction Nompropre() d'Excel.
    Exemple :
    chaine source :
    LATIF DEVALENDER
    chaine a obtenir :
    Latif Devalender
    NB ici le caractère _ désigne les espaces.

    Merci a tous

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Pour le premier, il convient d'utiliser TRIM qui supprime les espaces devant et derrière la chaîne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRIM(latif_ _devalender_) devient latif_ _devalender
    Pour le second point, je ne connais pas une telle fonction interne dans Firebird.

    Tu pourras trouver les informations que tu recherches aux adresses suivantes :

    Pour Firebird 2.1 http://www.firebirdsql.org/refdocs/langrefupd21.html
    Pour Firebird 2.5 http://www.firebirdsql.org/file/docu...grefupd25.html

    A+

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour
    La fonction REPLACE devrait le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REPLACE('latif_ devalender ',' ','') From RDB$DATABASE
    donne
    'latif_devalender'
    problème , ce n'est pas vraiment ce que vous désirez car tous les espaces seront ôtés (j'ai gardé un "_" exprès)
    pour obtenir le 'bon' résultat
    il faut : remplacer le premier espace d'une Chaine sans espace devant TRIM(chaine) par un _ (par exemple) puis le re-remplacer par un espace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REPLACE(REPLACE(OVERLAY(TRIM(' latif   devalender  ')  PLACING '_' FROM POSITION(' ' IN TRIM(' latif  devalender '))),' ',''),'_',' ') From RDB$DATABASE

    pour le deuxième point il existe une fonction UDF dans la bibliothèque FreeAdocUDF F_PROPERCASE qui pourrait le faire . Si vous n'envisagez pas d'UDF il est possible d'y arriver
    en utilisant les fonctions UPPER,LOWER,SUBSTRING et POSITION

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT UPPER(SUBSTRING('latif devalender' FROM 1 FOR 1))||LOWER(SUBSTRING('latif devalender' FROM 2)) FROM rdb$database
    donne Latif devalender
    mais la suite donne le tournis !!

    il aurait certainement été plus "DBA" d'avoir deux champs NOM et PRENOM
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Merci je vais m'inspirer de tous ces informations pour trouver ma voie.

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

Discussions similaires

  1. fontion : Gestion des espaces dans les noms de dossier
    Par _stephnane_ dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 10/11/2010, 10h56
  2. [Free Pascal] Suppression des espaces dans une chaîne
    Par Maxence45 dans le forum Free Pascal
    Réponses: 43
    Dernier message: 18/03/2007, 11h29
  3. support des espaces dans les noms de fichiers
    Par menuge dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2006, 09h02
  4. suppression des espaces dans les noms de fichiers
    Par menuge dans le forum Général Python
    Réponses: 8
    Dernier message: 22/10/2006, 12h01
  5. Remplacement des espaces dans les valeur d'un tableau
    Par calimero642 dans le forum Langage
    Réponses: 10
    Dernier message: 12/05/2006, 18h56

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