LA CLOCHE

Il y a ceux qui lisent cette actualité avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam

Nous avons abordé les fonctions imbriquées un peu plus tôt, maintenant nous les examinerons plus en détail. Nous examinerons également les fonctions permettant de travailler avec des valeurs NULL et des fonctions qui aident à implémenter l'opération de branchement dans une requête.

Fonctions imbriquées

Les fonctions imbriquées utilisent la valeur de retour d'une fonction comme paramètre d'entrée pour une autre fonction. Les fonctions ne renvoient toujours qu'une seule valeur. Par conséquent, vous pouvez traiter le résultat d'un appel de fonction comme une valeur littérale lorsque vous l'utilisez comme paramètre pour un appel à une autre fonction. Les fonctions en ligne peuvent être imbriquées à n'importe quel niveau d'imbrication. Un appel de fonction ressemble à ceci

Fonction1 (paramètre1, paramètre2,…) \u003d résultat

Le remplacement d'un paramètre de fonction par un appel à une autre fonction peut entraîner des expressions telles que

F1 (param1.1, F2 (param2.1, param2.2, F3 (param3.1)), param1.3)

Les fonctions imbriquées sont évaluées d'abord avant que leurs résultats ne soient utilisés comme entrées pour d'autres fonctions. Les fonctions sont évaluées du niveau d'imbrication le plus profond au niveau le plus élevé de gauche à droite. L'expression précédente est exécutée comme suit

  1. La fonction F3 (param1) est calculée et la valeur de retour est utilisée comme troisième paramètre pour la fonction 2, appelons-la param2.
  2. Ensuite, la fonction F2 (param1, param2.2, param2.3) est calculée et la valeur renvoyée est utilisée comme deuxième paramètre de la fonction F1 - param1.2
  3. Enfin, la fonction F1 (param1, param2, param1.3) est évaluée et renvoyée au programme appelant.

Ainsi, la fonction F3 est au troisième niveau d'imbrication.

Considérez la demande

sélectionnez next_day (last_day (sysdate) -7, 'tue') de dual;

  1. Il y a trois fonctions dans cette demande, de bas en haut - SYSDATE, LAST_DAY, NEXT_DAY. La demande est exécutée comme suit
  2. La fonction SYSDATE la plus imbriquée est exécutée. Il renvoie l'heure système actuelle. Supposons que la date actuelle soit le 28 octobre 2009
  3. Ensuite, le résultat de la fonction de deuxième niveau LAST_DAY est calculé. LAST_DATE ('28 -OCT-2009 ') renvoie le dernier jour d'octobre 2009, soit le 31 octobre 2009.
  4. Ensuite, sept jours sont soustraits de cette date - il s'avère que le 24 octobre.
  5. Enfin, la fonction NEXT_DAY ('24 -OCT-2009 ',' tue ') est évaluée et la requête renvoie le dernier mardi d'octobre - qui est le 27-OCT-2009 dans notre exemple.

Il est déjà assez difficile de comprendre et de créer des expressions complexes à l'aide de nombreux appels de fonction imbriqués, mais cela vient avec le temps et la pratique. Vous pouvez diviser ces expressions en parties et les tester séparément. La table DUAL est très utile pour tester les requêtes et les appels de fonction. Vous pouvez tester et déboguer de petits composants, qui peuvent ensuite être combinés en une seule grande expression souhaitée.

Fonctions de branchement

Les fonctions de branchement, également appelées IF-THEN-ELSE, sont utilisées pour déterminer le chemin d'exécution en fonction de certaines circonstances. Les fonctions de branchement renvoient des résultats différents en fonction du résultat de l'évaluation d'une condition. Dans le groupe de ces fonctions, les fonctions permettant de travailler avec des valeurs NULL sont distinguées: NVL, NVL2, NULLIF et COALESCE. Et aussi les fonctions communes représentées par la fonction DECODE et l'expression CASE. La fonction DECODE est une fonction Oracle, tandis que l'expression CASE est présente dans la norme ANSI SQL.

Fonction NVL

La fonction NVL teste la valeur d'une colonne ou d'une expression de n'importe quel type de données pour null. Si la valeur est NULL, elle renvoie une autre valeur par défaut non NULL; sinon, la valeur d'origine est renvoyée.

La fonction NVL a deux paramètres obligatoires et la syntaxe est NVL (original, ifnull) où original est la valeur d'origine à vérifier et ifnull est le résultat renvoyé par la fonction si original est NULL. Le type de données des paramètres ifnull et original doit être compatible. Autrement dit, soit le type de données doit être le même, soit il doit être possible de convertir implicitement des valeurs d'un type à un autre. La fonction NVL renvoie une valeur du même type de données que le type de données du paramètre d'origine. Considérez trois demandes

Requête 1: sélectionnez nvl (1234) de dual;

Requête 2: sélectionnez nvl (, 1234) de dual;

Requête 3: sélectionnez nvl (substr («abc», 4), «Aucune sous-chaîne n'existe») à partir de dual;

Comme la fonction NVL nécessite deux paramètres, la requête 1 renverra l'erreur ORA-00909: nombre d'arguments non valide. La requête 2 retournera 1234 puisque NULL est vérifié et qu'il est NULL. La troisième requête utilise une fonction SUBSTR imbriquée qui tente d'extraire le quatrième caractère d'une chaîne de trois caractères, renvoie NULL et la fonction NVL renvoie la chaîne «Aucune illustration n'existe».

La fonction NVL est très utile lorsque vous travaillez avec des nombres. Il est utilisé pour convertir les valeurs NULL en 0 afin que les opérations arithmétiques sur les nombres ne renvoient pas NULL.

Fonction NVL2

La fonction NVL2 offre plus de fonctionnalités que NVL, mais sert également à traiter valeurs nulles... Il vérifie la valeur d'une colonne ou d'une expression de n'importe quel type pour NULL. Si la valeur n'est pas NULL, le deuxième paramètre est renvoyé, sinon le troisième paramètre est renvoyé, contrairement à la fonction NVL, qui dans ce cas renvoie la valeur d'origine.

La fonction NVL2 a trois paramètres obligatoires et la syntaxe NVL2 (original, ifnot, ifnull), où original est la valeur à vérifier, ifnotnull est la valeur renvoyée si original n'est pas NULL et ifnull est la valeur renvoyée si original est NULL. Les types de données des paramètres ifnotnull et ifnull doivent être compatibles et ne peuvent pas être de type LONG. Le type de données renvoyé par la fonction NVL2 est égal au type de données du paramètre ifnotnull. Regardons quelques exemples

Requête 1: sélectionnez nvl2 (1234, 1, 'une chaîne') de dual;

Requête 2: sélectionnez nvl2 (, 1234, 5678) de dual;

Requête 3: sélectionnez nvl2 (substr («abc», 2), «Not bc», «No substring») dans dual;

Le paramètre ifnotnull dans la requête 1 est un nombre et le paramètre ifnull est une chaîne. Comme les types de données ne sont pas compatibles, l'erreur «ORA-01722: numéro invalide» est renvoyée. La requête deux renvoie le paramètre if, car l'original est NULL et le résultat est 5678. La requête trois utilise la fonction SUBSTR qui renvoie «bc» et appelle NVL2 («bc», «Not bc», «No substring») - qui renvoie le paramètre ifnotnull - «Pas bc».

Fonction NULLIF

La fonction NULLIF teste deux valeurs d'identité. S'ils sont identiques, NULL est renvoyé sinon le premier paramètre est renvoyé. La fonction NULLIF a deux paramètres obligatoires et la syntaxe est NULLIF (ifunequal, comparaison_item). La fonction compare deux paramètres et s'ils sont identiques - NULL est renvoyé, sinon le paramètre ifunequal. Tenez compte des demandes

Requête 1: sélectionnez nullif (1234, 1234) de dual;

La première demande renvoie NULL car les paramètres sont identiques. Les chaînes de la requête 2 ne sont pas converties en date, mais comparées en tant que chaînes. Comme les chaînes sont de longueurs différentes, ifunequal 24-JUL-2009 est renvoyé.

Dans la figure 10-4, NULLIF est imbriqué dans NVL2. La fonction NULLIF utilise à son tour les fonctions SUBSTR et UPPER dans le cadre de l'expression dans le paramètre ifunequal. La colonne EMAIL est comparée à cette expression, qui renvoie la première lettre du prénom concaténée avec le nom de famille pour les employés dont le prénom comporte 4 caractères. Lorsque ces valeurs sont égales, NULLIF retournera NULL et la valeur retournera la valeur du paramètre ifunequal. Ces valeurs sont utilisées comme paramètre pour la fonction NVL2. NVL2 renvoie à son tour une description indiquant si les éléments comparés correspondent ou non.

Figure 10-4 - Utilisation de la fonction NULLIF

Fonction COALESCE

La fonction COALESCE renvoie la première valeur non NULL de la liste de paramètres. Si tous les paramètres sont NULL, NULL est renvoyé. La fonction COALESCE a deux paramètres obligatoires et autant de paramètres optionnels que vous le souhaitez, et la syntaxe COALESCE (expr1, expr2, ..., exprn) où le résultat est expr1 si expr n'est pas NULL, sinon expr2 est retourné s'il n'est pas NULL, et ainsi de suite. COALESCE équivaut aux fonctions NVL imbriquées

COALESCE (expr1, expr2) \u003d NVL (expr1, expr2)

COALESCE (expr1, expr2, expr3) \u003d NVL (expr1, NVL (expr2, expr3))

Le type de données de la valeur de retour si une valeur non NULL est trouvée est le type de données de la première valeur non NULL. Pour éviter l'erreur «ORA-00932: types de données incohérents», tous les paramètres non NULL doivent être compatibles avec le premier paramètre non NULL. Regardons trois exemples

Requête 1: sélectionnez coalesce (, , , 'a string') à partir de dual;

Requête 2: sélectionnez coalesce (, , null) de dual;

Requête 3: sélectionnez coalesce (substr («abc», 4), «Not bc», «No substring») à partir de dual;

La requête 1 renvoie le quatrième paramètre: une chaîne, car il s'agit du premier paramètre non NULL. La requête deux renvoie NULL car tous les paramètres sont NULL. La requête 3 évalue le premier paramètre, obtient une valeur NULL et renvoie le deuxième paramètre, car il s'agit du premier paramètre non NULL.

Les paramètres de la fonction NVL2 peuvent prêter à confusion si vous êtes déjà familiarisé avec la fonction NVL. NVL (original, si nul) renvoie original si la valeur n'est pas NULL, sinon si nul. NVL2 (original, ifnot, ifnull) renvoie ifnotnull si l'original n'est pas NULL sinon ifnull. La confusion est due au fait que le deuxième paramètre de la fonction NVL est if, alors que dans NVL2 il est ifnotnull. Ne vous fiez donc pas à la position du paramètre dans la fonction.

Fonction DECODE

La fonction DECODE implémente la logique if-then-else en vérifiant l'égalité des deux premiers paramètres et en renvoyant la troisième valeur si elles sont égales ou une autre valeur si elles ne sont pas égales. La fonction DECODE a trois paramètres obligatoires et la syntaxe DECODE (expr1, comp1, iftrue1 ,,). Ces paramètres sont utilisés comme indiqué dans l'exemple de pseudocode suivant

IF expr1 \u003d comp1 alors retourne iftrue1

Sinon si expr1 \u003d comp2 alors retourne iftrue2

Sinon si exprN \u003d compN alors retourne iftrueN

Sinon, retourne NULL | iffalse;

Tout d'abord, expr1 est comparé à comp1. S'ils sont égaux, la valeur de iftrue1 est renvoyée. Si expr1 n'est pas égal à comp1, ce qui se passe ensuite dépend de la spécification des paramètres comp2 et iftrue2. Si elle est donnée, expr1 est comparée à comp2. Si les valeurs sont égales, iftrue2 est renvoyé. Sinon, s'il existe des paires de paramètres compN, iftrueN, expr1 et compN sont comparés et iftrueN est renvoyé si égal. Si aucune correspondance n'a été trouvée dans l'un des jeux de paramètres, alors iffalse est renvoyé si ce paramètre a été spécifié, ou NULL.

Tous les paramètres de la fonction DECODE peuvent être des expressions. Le type de retour est le même que le type du premier élément de validation - paramètrecomp 1. Expression expr 1 est implicitement convertible en type de données du paramètre comp1. Toutes les autres options de composition disponibles1 ... compN également implicitement convertible en comp1. DECODE traite une valeur NULL comme égale à une autre valeur NULL, c'est-à-dire si expr1 est NULL et comp3 est NULL et comp2 n'est pas NULL, alors iftrue3 est retourné. Regardons quelques exemples

Requête 1: sélectionnez décoder (1234, 123, «123 est une correspondance») à partir de dual;

Requête 2: sélectionnez le décodage (1234, 123, «123 est une correspondance», «Aucune correspondance») à partir de dual;

Requête 3: sélectionnez decode ('search', 'comp1', 'true1', 'comp2', 'true2', 'search', 'true3', substr ('2search', 2, 6), 'true4', ' false ') de dual;

La première requête compare les valeurs 1234 et 123. Comme elles ne sont pas égales, iftrue1 est ignoré, et comme iffalse n'est pas défini, NULL est renvoyé. La demande deux est identique à la demande 1, sauf que iffalse est spécifié. Étant donné que 1234 n’est pas égal à 123, alors «non» - «Aucune correspondance» est renvoyée. La troisième demande vérifie que les valeurs des paramètres correspondent à la valeur de recherche. Les paramètres comp1 et comp2 ne sont pas égaux à «recherche», donc les résultats de iftrue1 et iftrue2 sont ignorés. La correspondance est trouvée dans la troisième comparaison de comp3 (position de paramètre 6) et la valeur de retour iftrue3 (paramètre 7) est «true3». Puisqu'une correspondance a été trouvée, aucun autre calcul n'est effectué. Autrement dit, malgré le fait que la valeur comp4 (paramètre 8) correspond également à expr1, cette expression n'est jamais calculée car une correspondance a été trouvée dans la comparaison précédente.

Expression CASE

Tous les langages de programmation de troisième et quatrième génération implémentent la construction de cas. Comme la fonction DECODE, l'expression CASE vous permet d'implémenter une logique if-then-else. Il existe deux options pour utiliser l'expression CASE. Une simple expression CASE définit la source à comparer une fois, puis énumère tout les conditions nécessaires chèques. Le CASE recherché évalue les deux instructions pour chaque condition.

L'expression CASE a trois paramètres obligatoires. La syntaxe de l'expression dépend du type. Pour une expression CASE simple, cela ressemble à ceci

CASE search_expr

WHEN comparaison_expr1 ALORS iftrue1

)

La fonction TRUNC renvoie le nombre n, tronqué à m décimales. Le paramètre m peut être omis - dans ce cas, n est tronqué en un entier.

SÉLECTIONNER TRUNC (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100.99) X3,

TRONQUE (100.25678, 2) X4

DE DOUBLE

Fonction SIGN (n)

La fonction SIGN détermine le signe d'un nombre. Si n est positif, la fonction renvoie 1. Si n est négatif, -1 est renvoyé. Si égal à zéro, 0 est renvoyé. Par exemple:

SELECT SIGN (100,22) X1, SIGN (-100,22) X2, SIGN (0) X3

DE DOUBLE

Une caractéristique intéressante de cette fonction est la possibilité de passer m égal à zéro - il n'y a pas de division par 0 erreur.

Fonction POWER (n, m)

La fonction POWER élève n à la puissance m. Le degré peut être fractionnaire ou négatif, ce qui élargit considérablement les capacités de cette fonction.

SÉLECTIONNER PUISSANCE (10, 2) X1, PUISSANCE (100, 1/2) X2,

PUISSANCE (1000, 1/3) X3, PUISSANCE (1000, -1/3) X4

DE DOUBLE

X1 X2 X3 X4
100 10 10 0,1

Dans certains cas, lorsque cette fonction est appelée, une exception peut se produire. Par exemple:

SÉLECTIONNER LA PUISSANCE (-100, 1/2) X2

DE DOUBLE

Dans ce cas, une tentative est effectuée pour calculer la racine carrée d'un nombre négatif, ce qui entraînera une erreur ORA-01428 «Argument hors limites».

Fonction SQRT (n)

Cette fonction renvoie la racine carrée de n. Par exemple:

SÉLECTIONNER SQRT (100) X

DE DOUBLE

Fonctions EXP (n) et LN (n)

La fonction EXP élève e à la puissance n et la fonction LN calcule le logarithme naturel de n (où n doit être supérieur à zéro). Exemple:

SÉLECTIONNER EXP (2) X1, LN (1) X2, LN (EXP (2)) X3

Fonction NVL

La fonction NVL est généralement la plus utilisée. La fonction prend deux paramètres: NVL (expr1, expr2). Si le premier paramètre de expr1 n'est pas NULL, la fonction renvoie sa valeur. Si le premier paramètre est NULL, la fonction renvoie à la place la valeur du deuxième paramètre expr2.

Considérer exemple pratique... Le champ COMM de la table EMP peut contenir des valeurs NULL. Lors de l'exécution d'une requête comme:

SELECT EMPNO, ENAME, COMM, NVL (COMM, 0) NVL_COMM

DE SCOTT.EMP

la valeur NULL sera remplacée par zéro. Notez que si vous générez une valeur à l'aide d'une fonction, un alias lui est attribué. Les résultats de la requête ressembleront à ceci:

EMPNO ENAME COMM NVL_COMM
7369 FORGERON 0
7499 ALLEN 300 300
7521 QUARTIER 500 500
7566 JONES 0
7654 MARTIN 1400 1400
7698 BLAKE 0
7782 CLARK 0
7839 ROI 0
7844 TOURNEUR 0 0
7900 JAMES 0
7902 GUÉ 0
7934 MEUNIER 0

Fonction CEIL (n)

La fonction CEIL renvoie le plus petit entier supérieur ou égal au nombre n passé en paramètre. Par exemple:

SÉLECTIONNER LE PLAFOND (100) X1, CEIL (-100) X2, CEIL (100.2) X3, CEIL (-100.2) X4

DE DOUBLE

Fonction TRUNC (n [, m])

La fonction TRUNC renvoie le nombre n, tronqué à m décimales. Le paramètre m peut être omis - dans ce cas, n est tronqué en un entier.

SÉLECTIONNER TRUNC (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100.99) X3,

TRONQUE (100.25678, 2) X4

DE DOUBLE

Fonction SIGN (n)

La fonction SIGN détermine le signe d'un nombre. Si n est positif, la fonction renvoie 1. Si n est négatif, -1 est renvoyé. Si égal à zéro, 0 est renvoyé. Par exemple:

SELECT SIGN (100,22) X1, SIGN (-100,22) X2, SIGN (0) X3

DE DOUBLE

Une caractéristique intéressante de cette fonction est la possibilité de passer m égal à zéro - il n'y a pas de division par 0 erreur.

Fonction POWER (n, m)

La fonction POWER élève n à la puissance m. Le degré peut être fractionnaire ou négatif, ce qui élargit considérablement les capacités de cette fonction.

SÉLECTIONNER PUISSANCE (10, 2) X1, PUISSANCE (100, 1/2) X2,

PUISSANCE (1000, 1/3) X3, PUISSANCE (1000, -1/3) X4

DE DOUBLE

X1 X2 X3 X4
100 10 10 0,1

Dans certains cas, lorsque cette fonction est appelée, une exception peut se produire. Par exemple:

SÉLECTIONNER LA PUISSANCE (-100, 1/2) X2

DE DOUBLE

Dans ce cas, une tentative est effectuée pour calculer la racine carrée d'un nombre négatif, ce qui entraînera une erreur ORA-01428 «Argument hors limites».

Fonction SQRT (n)

Cette fonction renvoie la racine carrée de n. Par exemple:

SÉLECTIONNER SQRT (100) X

DE DOUBLE

Fonctions EXP (n) et LN (n)

La fonction EXP élève e à la puissance n et la fonction LN calcule le logarithme naturel de n (où n doit être supérieur à zéro). Exemple:

SÉLECTIONNER EXP (2) X1, LN (1) X2, LN (EXP (2)) X3

Fonction TO_CHAR avec des nombres

Fonctions de conversion de données en d'autres types de données. TO_CHAR (nombre) convertit un nombre en texte. TO_NUMBER (chaîne) convertit le texte en nombre.

SELECT TO_CHAR (123) FROM DUAL renverra la chaîne 123, SELECT TO_NUMBER (`12345") FROM DUAL renverra 12345.

Travaux de laboratoire. Changer le format des nombres affichés

Modifications du format des valeurs numériques dans Oracle SQL, la fonction TO_CHAR pour travailler avec des valeurs numériques.

La tâche:

Écrivez une requête qui affiche le prénom, le nom et les informations de salaire pour les employés de la table hr.employees dans le format illustré dans la figure 1. 3.4-1:

Figure: 3.4 -1

Dans ce cas, les données doivent être triées de manière à ce que les premières lignes s'affichent pour les employés ayant le salaire le plus élevé.

Remarque:

Certaines valeurs salariales de la Fig. 3.4-1 ont été modifiés et peuvent donc ne pas correspondre à vos valeurs.

Décision:

SELECT first_name AS "First name", last_name As "Last name", TO_CHAR (SALARY, "L999999999.99") As "Salary" FROM hr.employees ORDER BY SALARY DESC.

Fonctions TO_NUMBER et TO_DATE

Fonction de conversion de chaîne en date TO_DATE (chaîne, format). Les valeurs de format possibles ont déjà été discutées ci-dessus, je vais donc donner plusieurs exemples d'utilisation de cette fonction. Exemples:

SÉLECTIONNER TO_DATE ("01.01.2010", `JJ.MM.AAAA") DE DUAL renverra la date «01.01.2010»;

SÉLECTIONNER TO_DATE ("01.JAN.2010", `JJ.MON.YYYY") DE DUAL renverra la date «01.01.2009»;

SÉLECTIONNER TO_DATE ("15-01-10", `JJ-MM-AA") DE DUAL renverra la date «15/01/2010».

Fonction de conversion d'une chaîne en une valeur numérique TO_NUMBER (chaîne, format). Les valeurs de format les plus courantes sont répertoriées dans le tableau, examinons donc l'utilisation de cette fonction par des exemples. Exemples:

SÉLECTIONNER TO_NUMBER ("100") DE DUAL renverra le nombre 100 SELECT TO_NUMBER (`0010.01", "9999D99") DE DUAL retournera 10.01;

SÉLECTIONNER TO_NUMBER ("500 000", "999G999") DE DUAL renverra 500000.

Élément RR au format date

L'élément de format de date et d'heure RR est similaire à l'élément de format de date et d'heure AA, mais il offre une flexibilité supplémentaire pour stocker les valeurs de date dans d'autres siècles. L'élément de format RR datetime vous permet de stocker des dates du 20e siècle au 21e siècle en spécifiant uniquement les deux derniers chiffres de l'année.

Si les deux derniers chiffres de l'année en cours sont compris entre 00 et 49, l'année renvoyée a les mêmes deux premiers chiffres que l'année en cours.

Si les deux derniers chiffres de l'année en cours sont compris entre 50 et 99, les 2 premiers chiffres de l'année renvoyée sont 1 supérieurs aux 2 premiers chiffres de l'année en cours.

Si les deux derniers chiffres de l'année en cours sont compris entre 00 et 49, les 2 premiers chiffres de l'année renvoyée sont inférieurs de 1 aux 2 premiers chiffres de l'année en cours.

Si les deux derniers chiffres de l'année en cours sont compris entre 50 et 99, l'année renvoyée a les mêmes deux premiers chiffres que l'année en cours.

Fonction NVL

La fonction NVL est généralement la plus utilisée. La fonction reçoit deux paramètres: NVL (expr1, exp2). Si le premier paramètre de expr1 n'est pas NULL, la fonction renvoie sa valeur. Si le premier paramètre est NULL, la fonction renvoie à la place la valeur du deuxième paramètre exp2.

Exemple: sélectionnez NVL (supplier_city, n / a ") parmi les fournisseurs:

L'instruction SQL ci-dessus renverra n / "si le champ supplier_city est nul, sinon elle renverra supplier_city.

Un autre exemple d'utilisation de la fonction NVL dans Oracle / PLSQL est:

sélectionnez supplier_id, NVL (supplier_desc, supplier_name) parmi les fournisseurs.

Cette instruction SQL retournera nom du fournisseur champ si fournisseur_desc contient une valeur nulle. Sinon, il reviendra fournisseur_desc.

Un dernier exemple: utiliser la fonction NVL dans Oracle / PLSQL est: sélectionnez NVL (commission, 0) à partir des ventes;

Cette instruction SQL a renvoyé 0 si commission le champ contient une valeur nulle. Sinon, il reviendrait commission champ.

Conversions NVL pour différents types de données

Pour convertir une valeur non définie en valeur réelle, utilisez la fonction NVL: NVL ( expression1, expression 2), où:

expression1- La valeur d'origine ou calculée, qui peut être indéfinie.

expression2 - La valeur qui remplace la valeur non définie.

Remarque: La fonction NVL peut être utilisée pour convertir n'importe quel type de données, mais le résultat sera toujours du même type que expression1.

Convertir NVL pour différents types:

NUMÉRO - NVL (colonne numérique, 9).

CHAR ou VARCHAR2 - NVL (symboles | colonne, "Indisponible").

Travaux de laboratoire. Application de la fonction NVL

Fonction NVL pour travailler avec des valeurs nulles dans Oracle SQL.

La tâche:

Rédigez une requête qui affiche des informations sur les noms et prénoms des employés des employés. Tableau et le taux de commission (colonne COMMISSION_PCT) pour l'employé. Dans ce cas, pour les employés pour lesquels la commission n'est pas définie, vous devez afficher la valeur 0. Le résultat de la requête doit être le même que celui indiqué sur la fig. 3.5-1.

Figure: 3,5 -1 (affiche les valeurs commençant à la ligne 51)

Décision:

Le code de requête correspondant peut être comme ceci:

SELECT first_name AS «First name», last_name As «Last name», NVL (COMMISSION_PCT, 0) As «Commission rate» FROM hr.employees.

LA CLOCHE

Il y a ceux qui lisent cette actualité avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam