Ce tutoriel Oracle SQL fournit des explications, des exemples pour la fonction NVL dans Oracle
Qu'est-ce que la fonction NVL() dans Oracle
La fonction NVL dans Oracle est une fonction d'imbrication utilisée pour remplacer les valeurs nulles par certaines valeurs
Dans la syntaxe ci-dessus
expr1 :ce sont les valeurs ou l'expression source qui peuvent contenir null. Vous pouvez fournir le nom de la colonne, fonction sur le nom de la colonne
expr2 :c'est la valeur cible qui sera placée au cas où la valeur nulle serait renvoyée par expr1
Si expr1 est nul, alors NVL renvoie expr2. Si expr1 n'est pas nul, alors NVL renvoie expr1.
Points importants à noter
(1) Les arguments expr1 et expr2 peuvent avoir n'importe quel type de données. Si leurs types de données sont différents, Oracle Database convertit implicitement l'un en l'autre. S'ils ne peuvent pas être convertis implicitement, la base de données renvoie une erreur.
Si expr1 est une donnée textuelle, Oracle Database convertit expr2 dans le type de données de expr1 avant de les comparer et renvoie VARCHAR2 dans le jeu de caractères de expr1.
Si expr1 est numérique, alors Oracle détermine quel argument a la priorité numérique la plus élevée, convertit implicitement l'autre argument en ce type de données et renvoie ce type de données.
Donc, la déclaration suivante réussirait
select nvl(num-col ,10) from
select nvl(char-col ,'NA') from select nvl(end_date,'01-MAY-18') from
L'instruction suivante ferait une conversion implicite
select nvl(char-col ,1) from
L'instruction suivante échouerait
select nvl(end_date,'m/a') from
select nvl(user_id,'abc') from Comment utiliser la fonction NVL()
Cette fonction est très utile lorsque nous ne voulons pas renvoyer de valeurs nulles ou dans le calcul numérique car null transformerait des valeurs entières en null
Allons prenez un exemple pour le comprendre
Nous avons une table sales_people qui contient les ventes réalisées par les vendeurs, le % de commission sur les ventes, le salaire des personnes. Nous voulons calculer les revenus mensuels totaux des vendeurs. Les ventes peuvent avoir des valeurs nulles
La déclaration serait
select name,(salary + sales*commission/100) Monthy_ income from sales_people ;
Il renverra des valeurs nulles de toutes les personnes qui n'ont effectué aucune vente au cours de cette période, car le calcul aura des valeurs nulles
Cela peut être corrigé en utilisant la fonction nvl comme
select name,(salary + nvl(sales,0)*commission/100) Monthly_ income from sales_people ;
Il est donc clairement très utile pour effectuer des opérations mathématiques. La fonction NVL dans Oracle est une fonction très utile et peut être utilisée dans de nombreux endroits
Lit également
Fonctions de date Oracle SQL
Fonction NULLIF dans Oracle
Instruction de mise à jour dans Oracle
Fonction Coalesce dans Oracle
Changer le format de date dans Oracle
https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions105.htm