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

Sybase Discussion :

Conversion sur sybase


Sujet :

Sybase

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut Conversion sur sybase
    salut

    je voudrais une fonction qui permet le formatage du nombre avec sybase

    ex : 123456789 --> 123 456 789

    sur Oracle existe to_char(char, 999 999...)

    merci bien de m'aider

  2. #2
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut
    je l'ai besoin fortement

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par défaut
    Ce type de formattage n'est à priori pas disponible en T-SQL - le principe étant que le formattage est fait pas le client.

    Cependant, on peut écrire du code qui permette tout de même de le faire. L'algo de base est de convertir le nombre en char, l'inverser, inserer un blanc (ou virgule, point, etc) tous les trois charactères, puis re-inverser pour le remettre dans le bon sens.

    Cela donne qqch comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    declare @f float --numeric(38, 2)
    select @f = 10054578954319.98
    select case when sign(@f) < 0 then '-' else '' end + right(reverse(stuff(stuff(stuff(stuff(reverse(str(abs(@f), 20, 2)), 7, 0, ","), 11, 0, ","), 15, 0, ","), 19, 0, ",")),
    			round(7.0/3 + 4.0/3 * char_length(ltrim(str(abs(@f), 20, 0))), 0))
    C'est pas exactement facile à suivre... en 15.0.2 on peut en faire un fonction, ce qui facilite l'usage quelque peu...

    Michael

Discussions similaires

  1. Problèmes de conversion sur SelectOneMenu
    Par Pakiam dans le forum JSF
    Réponses: 7
    Dernier message: 13/08/2009, 17h03
  2. MSN Récupérer Conversation sur Autre Poste
    Par FloLens dans le forum Messagerie instantanée
    Réponses: 3
    Dernier message: 28/09/2007, 13h56
  3. [ASA] Renseignement sur sybase
    Par tit_oune dans le forum SQL Anywhere
    Réponses: 1
    Dernier message: 26/04/2006, 15h44
  4. Articles DVP sur Sybase
    Par Fabien Celaia dans le forum Sybase
    Réponses: 0
    Dernier message: 23/02/2006, 17h38
  5. Infos sur SYBASE SQL Anywhere Studio
    Par Thomad dans le forum Sybase
    Réponses: 2
    Dernier message: 28/04/2004, 16h12

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