Utilisation des fonctions à une seule ligne

Utilisation des fonctions de ligne unique pour personnaliser la sortie

Oracle SQL fournit une riche bibliothèque de fonctions intégrées qui peuvent être utilisées pour diverses tâches. Les capacités essentielles d'une fonction peuvent être la conversion de cas des chaînes, des opérations dans une chaîne ou des sous-chaînes, des calculs mathématiques sur des données numériques et des opérations de date sur des valeurs de type date. Les fonctions SQL prennent éventuellement des arguments de l'utilisateur et renvoient obligatoirement une valeur.

Sur une catégorie plus large, il existe deux types de fonctions: -

Single Row functions- Les fonctions à une seule ligne sont celles qui travaillent sur une seule ligne et renvoient une sortie par ligne. Par exemple, les fonctions de conversion de longueur et de casse sont des fonctions à une seule ligne.

Multiple Row functions - Les fonctions de lignes multiples fonctionnent sur un groupe de lignes et renvoient un résultat pour l'ensemble complet de lignes. Ils sont également connus sous le nom de fonctions de groupe.

Fonctions à une seule ligne

Les fonctions à une seule ligne peuvent être des fonctions de caractères, des fonctions numériques, des fonctions de date et des fonctions de conversion. Notez que ces fonctions sont utilisées pour manipuler des éléments de données. Ces fonctions nécessitent un ou plusieurs arguments d'entrée et fonctionnent sur chaque ligne, renvoyant ainsi une valeur de sortie pour chaque ligne. L'argument peut être une colonne, un littéral ou une expression. Les fonctions à une seule ligne peuvent être utilisées dans l'instruction SELECT, les clauses WHERE et ORDER BY. Les fonctions à une seule ligne peuvent être -

  • General functions- Contient généralement des fonctions de gestion NULL. Les fonctions de la catégorie sont NVL, NVL2, NULLIF, COALESCE, CASE, DECODE.

  • Case Conversion functions- Accepte la saisie de caractères et renvoie une valeur de caractère. Les fonctions de la catégorie sont UPPER, LOWER et INITCAP.

    • La fonction UPPER convertit une chaîne en majuscules.

    • La fonction LOWER convertit une chaîne en minuscules.

    • La fonction INITCAP convertit uniquement les alphabets initiaux d'une chaîne en majuscules.

  • Character functions- Accepte la saisie de caractères et renvoie un nombre ou une valeur de caractère. Les fonctions de la catégorie sont CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM et REPLACE.

    • La fonction CONCAT concatène deux valeurs de chaîne.

    • La fonction LENGTH renvoie la longueur de la chaîne d'entrée.

    • La fonction SUBSTR renvoie une partie d'une chaîne d'un point de départ donné à un point de fin.

    • La fonction INSTR renvoie la position numérique d'un caractère ou d'une chaîne dans une chaîne donnée.

    • Les fonctions LPAD et RPAD remplissent la chaîne donnée jusqu'à une longueur spécifique avec un caractère donné.

    • La fonction TRIM coupe l'entrée de chaîne à partir du début ou de la fin.

    • La fonction REPLACE remplace les caractères de la chaîne d'entrée par un caractère donné.

  • Date functions- Les opérations arithmétiques de date renvoient une date ou des valeurs numériques. Les fonctions de la catégorie sont MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND et TRUNC.

    • La fonction MONTHS_BETWEEN renvoie le nombre de mois entre les deux dates.

    • La fonction ADD_MONTHS ajoute un nombre 'n' de mois à une date d'entrée.

    • La fonction NEXT_DAY renvoie le jour suivant de la date spécifiée.

    • La fonction LAST_DAY renvoie le dernier jour du mois de la date d'entrée.

    • Les fonctions ROUND et TRUNC sont utilisées pour arrondir et tronquer la valeur de date.

  • Number functions- Accepte les entrées numériques et renvoie des valeurs numériques. Les fonctions de la catégorie sont ROUND, TRUNC et MOD.

    • Les fonctions ROUND et TRUNC sont utilisées pour arrondir et tronquer la valeur numérique.

    • MOD est utilisé pour renvoyer le reste de l'opération de division entre deux nombres.

Illustrations

Fonctions générales

La requête SELECT ci-dessous illustre l'utilisation de la fonction NVL.

SELECT first_name, last_name, salary, NVL (commission_pct,0) 
FROM employees
WHERE rownum < 5;

FIRST_NAME           LAST_NAME                     SALARY NVL(COMMISSION_PCT,0)
-------------------- ------------------------- ---------- ---------------------
Steven               King                           24000                     0
Neena                Kochhar                        17000                     0
Lex                  De Haan                        17000                     0
Alexander            Hunold                          9000                     0

Fonctions de conversion de cas

La requête SELECT ci-dessous illustre l'utilisation des fonctions de conversion de casse.

SELECT UPPER (first_name), INITCAP (last_name), LOWER (job_id)
FROM employees
WHERE rownum < 5;

UPPER(FIRST_NAME)    INITCAP(LAST_NAME)        LOWER(JOB_
-------------------- ------------------------- ----------
STEVEN               King                      ad_pres
NEENA                Kochhar                   ad_vp
LEX                  De Haan                   ad_vp
ALEXANDER            Hunold                    it_prog

Fonctions de caractère

La requête SELECT ci-dessous illustre l'utilisation de la fonction CONCAT pour concaténer deux valeurs de chaîne.

SELECT CONCAT (first_name, last_name) 
FROM employees
WHERE rownum < 5;

CONCAT(FIRST_NAME,LAST_NAME)
--------------------------------
EllenAbel
SundarAnde
MozheAtkinson
DavidAustin

La requête SELECT ci-dessous illustre l'utilisation des fonctions SUBSTR et INSTR. La fonction SUBSTR renvoie la partie de la chaîne d'entrée de la 1ère à la 5ème position. La fonction INSTR renvoie la position numérique du caractère «a» dans le prénom.

SELECT SUBSTR (first_name,1,5), INSTR (first_name,'a')
FROM employees
WHERE rownum < 5;

SUBST INSTR(FIRST_NAME,'A')
----- ---------------------
Ellen                     0
Sunda                     5
Mozhe                     0
David                     2

La requête SELECT ci-dessous montre l'utilisation de LPAD et RPAD pour imprimer correctement les informations sur l'employé et le poste.

SELECT RPAD(first_name,10,'_')||LPAD (job_id,15,'_')
FROM employees
WHERE rownum < 5;

RPAD(FIRST_NAME,10,'_')||
-------------------------
Steven____________AD_PRES
Neena_______________AD_VP
Lex_________________AD_VP
Alexander_________IT_PROG

Fonctions numériques

La requête SELECT ci-dessous illustre l'utilisation des fonctions ROUND et TRUNC.

SELECT ROUND (1372.472,1)
FROM dual;

ROUND(1372.472,1)
-----------------
           1372.5

SELECT TRUNC (72183,-2)
FROM dual;

TRUNC(72183,-2)
---------------
          72100

Opérations arithmétiques de date

La requête SELECT ci-dessous montre une fonction arithmétique de date où la différence entre la date d'embauche de l'employé et la date système est effectuée.

SELECT employee_id, (sysdate - hire_date) Employment_days
FROM employees
WHERE rownum < 5;

EMPLOYEE_ID EMPLOYMENT_DAYS
----------- ---------------
        100      3698.61877
        101      2871.61877
        102      4583.61877
        103      2767.61877

Fonctions de date

La requête SELECT ci-dessous illustre l'utilisation des fonctions MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY et LAST_DAY.

SELECT employee_id, MONTHS_BETWEEN (sysdate, hire_date) Employment_months
FROM employees
WHERE rownum < 5;

EMPLOYEE_ID EMPLOYMENT_MONTHS
----------- -----------------
        100        121.504216
        101        94.3751837
        102        150.633248
        103        90.9558289

SELECT ADD_MONTHS (sysdate, 5), NEXT_DAY (sysdate), LAST_DAY (sysdate)
FROM dual;

ADD_MONTH NEXT_DAY( LAST_DAY(
--------- --------- ---------
01-JAN-14 05-AUG-13 31-AUG-13