Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
21 avril 2012 6 21 /04 /avril /2012 13:22

 

SQL COALESCE.

Comment retourner la première valeur NOT NULL dans une liste avec la fonction sql COALESCE dans Oracle.
Comment utiliser COALESCE pour tester des valeurs NULL dans une liste de colonnes.

 

Fonction Oracle SQL COALESCE.

La fonction oracle SQL COALESCE renvoie la première expression NOT NULL parmi une liste d'expressions en évaluant chaque valeur et en déterminant si celle ci est NULL.
COALESCE est une extension de la Fonction NVL / NVL2. ( Gestion des valeurs NULL ).

 

SYNTAXE SQL COALESCE.

 
 COALESCE(expr [, expr ]...)  

Si toutes les expressions de la liste sont NULL, COALESCE retourne une valeur NULL.
Toutes les expressions de la liste doivent être du même type de données.

 

 
 TABLE DEMO COALESCE SQL> SELECT ename, sal, comm FROM emp; ENAME SAL COMM ---------- ---------- ---------- SMITH 800,5 ALLEN 1800 WARD 1250 500,56 JONES 2975 MARTIN SQL> 

 


TESTER LES VALEURS NULL DES COLONNES AVEC COALESCE.

Dans cet exemple, COALESCE va évaluer les valeurs des colonnes Salaire et Com.
La fonction affichera en premier la colonne Salaire si celle-ci est NOT NULL,
sinon elle affichera la colonne Com si celle-ci est NOT NULL, sinon si toutes les colonnes sont NULL alors une valeur par défaut ( ici 10 ) sera retournée.

 
 SQL> SELECT ename, COALESCE (sal, comm, 10) AS RESULT FROM emp; ENAME RESULT ---------- ---------- SMITH 800,5 ALLEN 1800 WARD 1250 JONES 2975 MARTIN 10 SQL> 

 


CALCULER AVEC DES VALEURS NULL AVEC COALESCE.

Dans cet exemple, COALESCE va évaluer les valeurs des colonnes Salaire et Com afin de retourner un nouveau salaire unique.
Si Salaire et Com sont NOT NULL alors augmentation de 10 % de la Com.
Sinon si Com est NOT NULL alors augmentation de 30% de la Com.
Sinon si Salaire est NOT NULL alors augmentation de 35% du Salaire.
Sinon un salaire de 2000 par défaut si Salaire et Com sont NULL.

 
 SQL> SELECT ename, sal, comm, COALESCE (sal + comm * 1.1, comm * 1.3, sal * 1.35, 2000) AS "Nvx Salaire Uniq" FROM emp; ENAME SAL COMM Nvx Salaire Uniq ---------- ---------- ---------- ---------------- SMITH 800,5 1080,675 ALLEN 1800 2340 WARD 1250 500,56 1800,616 JONES 2975 4016,25 MARTIN 2000 SQL> 

 


GESTION SIMPLE DE VALEURS NULL AVEC SQL COALESCE.

 
 SQL> SELECT COALESCE(NULL,NULL,NULL,4,NULL,2) AS RESULT FROM dual; RESULT ---------- 4 SQL> 

 

Haut de Page www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Fonction NVL / NVL2

Partager cet article

Repost 0
Published by Daniel Roesch - dans FUNCTIONS - SQL
commenter cet article

commentaires