Utilizzo di funzioni a riga singola

Utilizzo delle funzioni a riga singola per personalizzare l'output

Oracle SQL fornisce una ricca libreria di funzioni integrate che possono essere utilizzate per varie attività. Le capacità essenziali di una funzione possono essere la conversione del caso di stringhe, operazioni in stringa o sottostringa, calcoli matematici su dati numerici e operazioni di data su valori di tipo di data. Le funzioni SQL facoltativamente accettano argomenti dall'utente e restituiscono obbligatoriamente un valore.

In una categoria più ampia, ci sono due tipi di funzioni: -

Single Row functions- Le funzioni a riga singola sono quelle che lavorano su una riga singola e restituiscono un output per riga. Ad esempio, le funzioni di conversione di lunghezza e maiuscole / minuscole sono funzioni a riga singola.

Multiple Row functions - Più funzioni di riga funzionano su un gruppo di righe e restituiscono un risultato per il set completo di righe. Sono anche note come funzioni di gruppo.

Funzioni a riga singola

Le funzioni a riga singola possono essere funzioni carattere, funzioni numeriche, funzioni data e funzioni di conversione. Notare che queste funzioni vengono utilizzate per manipolare gli elementi di dati. Queste funzioni richiedono uno o più argomenti di input e operano su ogni riga, restituendo così un valore di output per ogni riga. L'argomento può essere una colonna, un valore letterale o un'espressione. Le funzioni di riga singola possono essere utilizzate nell'istruzione SELECT, nelle clausole WHERE e ORDER BY. Le funzioni di riga singola possono essere:

  • General functions- Di solito contiene funzioni di gestione NULL. Le funzioni nella categoria sono NVL, NVL2, NULLIF, COALESCE, CASE, DECODE.

  • Case Conversion functions- Accetta l'inserimento di caratteri e restituisce un valore di carattere. Le funzioni nella categoria sono UPPER, LOWER e INITCAP.

    • La funzione UPPER converte una stringa in maiuscolo.

    • La funzione LOWER converte una stringa in minuscolo.

    • La funzione INITCAP converte solo gli alfabeti iniziali di una stringa in maiuscolo.

  • Character functions- Accetta l'immissione di caratteri e restituisce il numero o il valore del carattere. Le funzioni nella categoria sono CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM e REPLACE.

    • La funzione CONCAT concatena due valori stringa.

    • La funzione LENGTH restituisce la lunghezza della stringa di input.

    • La funzione SUBSTR restituisce una parte di una stringa da un dato punto iniziale a un punto finale.

    • La funzione INSTR restituisce la posizione numerica di un carattere o una stringa in una determinata stringa.

    • Le funzioni LPAD e RPAD riempiono la stringa data fino a una lunghezza specifica con un dato carattere.

    • La funzione TRIM taglia l'input della stringa dall'inizio o dalla fine.

    • La funzione REPLACE sostituisce i caratteri della stringa di input con un determinato carattere.

  • Date functions- Le operazioni aritmetiche sulla data restituiscono una data o valori numerici. Le funzioni nella categoria sono MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND e TRUNC.

    • La funzione MONTHS_BETWEEN restituisce il conteggio dei mesi tra le due date.

    • La funzione ADD_MONTHS aggiunge il numero "n" di mesi a una data di input.

    • La funzione NEXT_DAY restituisce il giorno successivo della data specificata.

    • La funzione LAST_DAY restituisce l'ultimo giorno del mese della data di input.

    • Le funzioni ROUND e TRUNC vengono utilizzate per arrotondare e troncare il valore della data.

  • Number functions- Accetta input numerici e restituisce valori numerici. Le funzioni nella categoria sono ROUND, TRUNC e MOD.

    • Le funzioni ROUND e TRUNC vengono utilizzate per arrotondare e troncare il valore del numero.

    • MOD viene utilizzato per restituire il resto dell'operazione di divisione tra due numeri.

Illustrazioni

Funzioni generali

La query SELECT di seguito dimostra l'uso della funzione 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

Funzioni di conversione dei casi

La query SELECT di seguito mostra l'utilizzo delle funzioni di conversione dei casi.

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

Funzioni dei caratteri

La query SELECT riportata di seguito dimostra l'utilizzo della funzione CONCAT per concatenare due valori di stringa.

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

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

La query SELECT di seguito mostra l'utilizzo delle funzioni SUBSTR e INSTR. La funzione SUBSTR restituisce la parte della stringa di input dalla prima posizione alla quinta posizione. La funzione INSTR restituisce la posizione numerica del carattere "a" nel nome.

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 query SELECT di seguito mostra l'utilizzo di LPAD e RPAD per stampare in modo carino le informazioni sui dipendenti e sul lavoro.

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

Funzioni numeriche

La query SELECT di seguito mostra l'uso delle funzioni ROUND e TRUNC.

SELECT ROUND (1372.472,1)
FROM dual;

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

SELECT TRUNC (72183,-2)
FROM dual;

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

Operazioni aritmetiche sulla data

La query SELECT di seguito mostra una funzione aritmetica della data in cui viene eseguita la differenza tra la data di assunzione del dipendente e sysdate.

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

Funzioni di data

La query SELECT di seguito dimostra l'uso delle funzioni MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY e 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