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

MS SQL Server Discussion :

Fonction COALESCE


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 144
    Points
    144
    Par défaut Fonction COALESCE
    Salut.
    J'ai besoin d'afficher un champ calculé dans une requête.
    voici mon probleme, sous forme algoritmique:
    si Champ1*Champ2<>0 Alors Champ1*Champ2
    Sinon Champ3*Champ4

    J'ai pensé à utiliser la fonction COLAESCE qui renvoie le première valeur NON NULLE, comme ça:
    COLAESCE(Champ1*Champ2;Champ3*Champ4)

    Malheuresement, la valeur "0" est une valeur et de fait, n'est pas nulle. Alors j'aurais besoin d'utiliser une fonction du type colaesce qui me renverrait la premiere valeur différente de "0".
    Cette fonction existe t'elle?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Il ne me semble pas que cette fonction existe en natif dans SQL-Server. Mais je laisse des gens plus caler pour confirmer cela.

    Mais SQL-Server 2000 offre une fonctionnalité assez puissante qui est d'étendre le nombre de fonctions fournies en donnant la possibilité de créer ces propres fonctions : les fonctions définies par l'utilisateur ou user defined functions
    Ces fonctions sont un peu comme des procédures stockées mais qu'on peu utiliser dans les closes SELECT (entre autres).

    Tu pourrais ton créer ta propre fonction qui renvoie le bon résultat.

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    create function MaFonction ( @A decimal   , @B decimal   )  returns decimal   
    as
    begin
        declare @value decimal
     
       IF (@A) > 0 
        @value = @A
       else
        @value = @B
     
       return @value
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select MaFonction (Champ1*Champ2, Champ3*Champ4 )
    from maTable

    Encore une fois, ma réponse n'est valable que pour SQL SERVER 2000 (et ultérieur)

    En espérant que cela t'aide.

    trotin

  3. #3
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    tu peux utilise le CASE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Fonction CASE simple
     
    CASE input_expression 
        WHEN when_expression THEN result_expression 
            [ ...n ] 
        [ 
            ELSE else_result_expression 
        ] 
    END 
     
    Fonction CASE recherchée :
     
    CASE
        WHEN Boolean_expression THEN result_expression 
            [ ...n ] 
        [ 
            ELSE else_result_expression 
        ] 
    END
    tous les details sont dans la doc SQL Server.

    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

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

Discussions similaires

  1. [11g] Regroupement avec la fonction coalesce
    Par JGLord dans le forum SQL
    Réponses: 1
    Dernier message: 27/03/2013, 18h35
  2. [AC-2003] Insertion de données manquante (fonction coalesce sous Access)
    Par JGLord dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/03/2013, 17h51
  3. Fonction COALESCE avec un LIKE
    Par nekro65 dans le forum Langage SQL
    Réponses: 17
    Dernier message: 25/03/2009, 15h15
  4. [SQL Server] Fonction COALESCE
    Par evans dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/04/2006, 15h19
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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