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