résumé: dans ce tutoriel, vous apprendrez à utiliser la fonction Oracle COALESCE()
pour renvoyer les premiers arguments non nuls d’une liste.
Introduction à la fonction Oracle COALESCE ()
la fonction OracleCOALESCE()
accepte une liste d’arguments et renvoie le premier qui est évalué à une valeur non nulle.,
L’exemple suivant illustre la syntaxe de l’Oracle COALESCE()
fonction:
Dans cette syntaxe, la balise COALESCE()
la fonction renvoie la première valeur non nulle expression dans la liste. Il nécessite au moins deux expressions. Dans le cas où toutes les expressions sont évaluées à null, la fonction renvoie null.,
l’exemple suivant renvoie un parce que c’est le premier argument non nul:
RESULT---------- 1
l’exemple suivant renvoie null parce que tous les arguments sont nuls:
Type de retour
Si tous même type de données, la fonction COALESCE()
renvoie une valeur de ce type de données.
Si les arguments ont des types de données différents, la fonctionCOALESCE()
convertit implicitement tous les arguments en type de données du premier argument non null., En cas d’échec de la conversion, Oracle émet une erreur.
l’exemple suivant renvoie une valeur avec un type de caractère car tous les arguments sont des caractères.,
de Même, l’exemple suivant renvoie une valeur numérique de type:
RESULT---------- 1
Cependant, l’exemple suivant utilise des arguments de types différents pour le COALESCE()
fonction:
Oracle a délivré le message d’erreur suivant:
Parce que COALESCE()
fonction essayé de convertir le type de caractère de la troisième argument d’un type numérique de la deuxième argument qui a entraîné une erreur.,
évaluation de Court-circuit
Le COALESCE()
fonction utilise évaluation de court-circuit. Cela signifie que la fonction cesse d’évaluer les expressions restantes une fois qu’elle trouve que la première est évaluée à une valeur non nulle.
prenons l’exemple suivant:
Dans cet exemple, la balise COALESCE()
fonction évalués uniquement dans la première expression, parce que le résultat de la première expression a deux (1+1). Il n’a pas évalué la deuxième expression (1/0). S’il l’avait fait, Oracle aurait émis la division par zéro erreur.,
exemple Oracle COALESCE ()
configurons un exemple de table pour les tests.
supposons que vous devez enregistrer les contacts d’urgence des employés avec différents numéros de téléphone: téléphone de travail, téléphone à domicile et téléphone portable. Pour ce faire, vous créez une nouvelle table nommée emergency_contacts
comme suit:
les instructions suivantes insèrent des contacts d’urgence dans la table:
certains contacts ont uniquement un téléphone de travail tandis que d’autres peuvent avoir un téléphone personnel et un téléphone portable ou n’ont aucun numéro de téléphone.,
la requête suivante récupère les employés et leurs contacts d’urgence avec des numéros de téléphone:
dans cet exemple, nous avons utilisé la fonctionCOALESCE()
pour sélectionner un téléphone personnel, un téléphone professionnel ou un téléphone portable si chacun est disponible. Dans le cas où aucun numéro de téléphone n’est disponible, nous avons renvoyé N/A
chaîne littérale qui signifie non disponible.,
ce qui suit montre le résultat de la requête:
Oracle COALESCE() et CASE expression
Vous pouvez utiliser le COALESCE()
fonction au lieu de la plus longue CASE
expression quand il s’agit de tester null dans plusieurs expressions. La fonction COALESCE()
est plus concise qu’une expression CASE
qui implique des évaluations nulles.,
If you check for NULL in two expressions, the COALESCE()
function is equivalent to the CASE
expression.
For example, the following COALESCE()
function:
is equivalent to:
Likewise,
is equivalent to
Oracle COALESCE() vs. NVL()
The COALESCE()
function is a part of SQL ANSI-92 standard while NVL()
function is Oracle specific.,
dans le cas de deux expressions, la fonctionCOALESCE()
EtNVL()
semblent être similaires mais leurs implémentations sont différentes. Voir les instructions suivantes:
les Deux états retournent le même résultat qui est une. Cependant, la fonction COALESCE()
évalue uniquement la première expression pour déterminer le résultat tandis que la fonction NVL()
évalue les deux expressions.,
voyons l’exemple suivant:
La déclaration ci-dessus est retourné 1 alors que l’exemple suivant provoque une erreur:
L’erreur est:
Parce que NVL()
fonction évalué la deuxième expression 1/0
qui provoque l’erreur.
dans ce tutoriel, vous avez appris à utiliser la fonction Oracle COALESCE()
pour renvoyer la première expression non nulle dans une liste d’expressions.
- ce tutoriel a Été utile?,
- Ouinon