LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Abbiamo toccato le funzioni nidificate un po 'prima, ora le considereremo in modo più dettagliato. Consideriamo anche funzioni che funzionano con il valore NULL e funzioni che aiutano a implementare l'operazione di diramazione nella query.

Funzioni nidificate

Le funzioni nidificate utilizzano il valore restituito di una funzione come parametro di input per un'altra funzione. Le funzioni restituiscono sempre solo un valore. Pertanto, è possibile considerare il risultato di una chiamata di funzione come valore letterale quando lo si utilizza come parametro per chiamare un'altra funzione. Le funzioni di stringa possono essere nidificate a qualsiasi livello di annidamento. Una chiamata di funzione è simile a questa

Funzione1 (parametro1, parametro2, ...) \u003d risultato

La sostituzione di un parametro di funzione con un'altra chiamata di funzione può provocare espressioni del modulo

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

Inizialmente, le funzioni nidificate vengono calcolate prima che i loro risultati vengano utilizzati come valori di input per altre funzioni. Le funzioni sono calcolate dal livello più profondo di annidamento al più alto da sinistra a destra. L'espressione precedente è la seguente

  1. Viene calcolata la funzione F3 (param1) e il valore restituito viene utilizzato come terzo parametro per la funzione 2, chiamiamolo param2.3
  2. Quindi viene calcolata la funzione F2 (param1, param2.2, param2.3) e il valore di ritorno viene utilizzato come secondo parametro della funzione F1 - param1.2
  3. Infine, viene calcolata la funzione F1 (param1, param2, param1.3) e il risultato viene restituito al programma chiamante.

Pertanto, la funzione F3 è al terzo livello di annidamento.

Considera la richiesta

seleziona next_day (last_day (sysdate) -7, "tue") da dual;

  1. Esistono tre funzioni in questa query, dal livello inferiore a quello superiore: SYSDATE, LAST_DAY, NEXT_DAY. La richiesta è la seguente
  2. Viene eseguita la funzione SYSDATE più nidificata. Restituisce l'ora di sistema corrente. Supponiamo che la data corrente sia il 28 ottobre 2009
  3. Successivamente, viene calcolato il risultato della funzione di secondo livello LAST_DAY. LAST_DATE ("28 -otto-2009") restituisce l'ultimo giorno di ottobre 2009, ovvero il valore del 31 ottobre 2009.
  4. Quindi, vengono sottratti sette giorni da questa data - si scopre il 24 ottobre.
  5. Infine, viene calcolata la funzione NEXT_DAY ("24 OTT-2009", "tue") e la query restituisce l'ultimo martedì di ottobre, che nel nostro esempio è 27-OTT-2009.

È abbastanza difficile comprendere e costruire espressioni complesse usando molte chiamate di funzione nidificate, ma questo viene fornito con il tempo e la pratica. È possibile suddividere tali espressioni in parti e testarle separatamente. La tabella DUAL è molto utile per testare z. Query e risultati di chiamate di funzioni. È possibile testare ed eseguire il debug di piccoli componenti, che vengono quindi combinati in un'unica grande espressione desiderata.

Funzioni di ramificazione

Le funzioni di diramazione, note anche come IF-ANYWHERE, vengono utilizzate per determinare il percorso di esecuzione, in base a qualsiasi circostanza. Le funzioni di diramazione restituiscono risultati diversi in base al risultato della valutazione della condizione. Nel gruppo di tali funzioni, si distinguono le funzioni NULL: NVL, NVL2, NULLIF e COALESCE. E anche le funzioni generali rappresentate dalla funzione DECODE e dall'espressione CASE. La funzione DECODE è una funzione Oracle, mentre l'espressione CASE è presente nello standard ANSI SQL.

Funzione NVL

La funzione NVL verifica il valore di una colonna o espressione di qualsiasi tipo di dati per NULL. Se il valore è NULL, restituisce un valore predefinito non NULL alternativo, altrimenti viene restituito il valore originale.

La funzione NVL ha due parametri richiesti e la sintassi è NVL (originale, ifnull) dove originale è il valore originale da verificare e se il risultato restituito dalla funzione è null se l'originale è NULL. Il tipo di dati dei parametri ifnull e original deve essere compatibile. Cioè, o il tipo di dati deve essere lo stesso o deve essere possibile convertire implicitamente i valori da un tipo a un altro. La funzione NVL restituisce il valore dello stesso tipo di dati del tipo di dati del parametro originale. Prendi in considerazione tre domande

Query 1: selezionare nvl (1234) da dual;

Query 2: selezionare nvl (, 1234) da dual;

Query 3: selezionare nvl (substr ("abc", 4), "Nessuna sottostringa esistente") da dual;

Poiché la funzione NVL richiede due parametri, la query 1 restituirà un errore ORA-00909: numero di argomenti non valido. La query 2 restituirà 1234 poiché controlla NULL ed è NULL. La query tre utilizza una funzione SUBSTR nidificata che tenta di estrarre il quarto carattere da una stringa lunga tre caratteri, restituisce NULL e la funzione NVL restituisce una stringa "Nessun sbustring esiste".

La funzione NVL è molto utile quando si lavora con i numeri. Viene utilizzato per convertire i valori NULL in 0, pertanto le operazioni aritmetiche sui numeri non restituiscono NULL

Funzione NVL2

La funzione NVL2 offre più funzionalità di NVL, ma serve anche per elaborare i valori NULL. Controlla il valore di una colonna o espressione di qualsiasi tipo per NULL. Se il valore non è NULL, viene restituito il secondo parametro, altrimenti viene restituito il terzo parametro, in contrasto con la funzione NVL, che in questo caso restituisce il valore originale.

La funzione NVL2 ha tre parametri richiesti e la sintassi di NVL2 (originale, ifnot, ifnull), dove originale è il valore verificato, ifnotnull viene restituito se l'originale non è NULL e ifnull viene restituito se l'originale è NULL. I tipi di dati dei parametri ifnotnull e ifnull devono essere compatibili e non possono essere di tipo LONG. Il tipo di dati restituito dalla funzione NVL2 è uguale al tipo di dati del parametro ifnotnull. Diamo un'occhiata ad alcuni esempi.

Query 1: selezionare nvl2 (1234, 1, "una stringa") da dual;

Query 2: selezionare nvl2 (, 1234, 5678) da dual;

Query 3: selezionare nvl2 (substr ("abc", 2), "Not bc", "No substring") da dual;

Il parametro ifnotnull nella query 1 è un numero e il parametro ifnull è una stringa. Poiché i tipi di dati non sono compatibili, viene restituito l'errore "ORA-01722: numero non valido". La richiesta due restituisce un parametro if, poiché l'originale è NULL e il risultato sarà 5678. La richiesta tre utilizza la funzione SUBSTR che restituisce 'bc' e viene chiamato NVL2 ('bc', 'Not bc', 'No substring') - che restituisce un parametro ifnotnull - "Non bc".

Funzione Nullif

La funzione NULLIF controlla due valori per l'identità. Se sono uguali, viene restituito NULL, altrimenti viene restituito il primo parametro. La funzione NULLIF ha due parametri richiesti e la sintassi NULLIF (ifunequal, compare_item). La funzione confronta due parametri e, se sono identici, restituisce NULL, altrimenti il \u200b\u200bparametro ifunequal. Considera le richieste

Query 1: selezionare nullif (1234, 1234) da dual;

Una query restituisce NULL poiché i parametri sono identici. Le righe nella query 2 non vengono convertite in una data, ma vengono confrontate come stringhe. Poiché le stringhe hanno lunghezze diverse, il parametro ifunequal viene restituito il 24-LUG-2009.

Nella Figura 10-4, la funzione NULLIF è nidificata nella funzione NVL2. La funzione NULLIF, a sua volta, utilizza le funzioni SUBSTR e UPPER come parte dell'espressione nel parametro ifunequal. La colonna EMAIL viene confrontata con questa espressione, che restituisce la prima lettera del nome combinata con il cognome per i dipendenti il \u200b\u200bcui nome è lungo 4 caratteri. Quando questi valori sono uguali, NULLIF restituirà NULL e il valore restituirà il valore del parametro ifunequal. Questi valori vengono utilizzati come parametro per la funzione NVL2. A sua volta, NVL2 restituisce una descrizione della corrispondenza o meno degli articoli confrontati.

Figura 10-4 - Utilizzo della funzione NULLIF

Funzione COALESCE

La funzione COALESCE restituisce il primo valore non nullo dall'elenco dei parametri. Se tutti i parametri sono NULL, viene restituito NULL. La funzione COALESCE ha due parametri richiesti e un numero qualsiasi di parametri opzionali e la sintassi COALESCE (expr1, expr2, ..., exprn) dove il risultato sarà expr1 se expr 1 non è NULL, altrimenti il \u200b\u200brisultato sarà expr2 se non è NULL, ecc. COALESCE è uguale nel significato alle funzioni nidificate NVL

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

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

Il tipo di dati del valore restituito se viene trovato un valore non NULL è uguale al tipo di dati del primo valore non NULL. Per evitare l'errore "ORA-00932: tipi di dati incoerenti", tutti i parametri non NULL devono essere compatibili con il primo parametro non NULL. Diamo un'occhiata a tre esempi.

Query 1: seleziona coalesce (, , , "una stringa") da dual;

Query 2: seleziona coalesce (, , null) da dual;

Query 3: seleziona coalesce (substr ("abc", 4), "Not bc", "No substring") da dual;

La query 1 restituisce il quarto parametro: una stringa, poiché si tratta del primo parametro non NULL. La query due restituisce NULL poiché tutti i parametri sono NULL. La query 3 calcola il primo parametro, ottiene un valore NULL e restituisce il secondo parametro, poiché è il primo parametro non NULL.

I parametri della funzione NVL2 possono essere fonte di confusione se si ha già familiarità con la funzione NVL. NVL (originale, ifnull) restituisce originale se il valore non è NULL, altrimenti ifnull. NVL2 (originale, ifnot, ifnull) restituisce ifnotnull se l'originale non è NULL, altrimenti ifnull. La confusione è dovuta al fatto che il secondo parametro della funzione NVL è if, mentre per NVL2 è ifnotnull. Quindi non fare affidamento sulla posizione del parametro nella funzione.

Funzione DECODE

La funzione DECODE implementa la logica if-then-else controllando i primi due parametri per l'uguaglianza e restituendo il terzo valore in caso di uguaglianza o un altro valore in caso di disuguaglianza. La funzione DECODE ha tre parametri richiesti e la sintassi DECODE (expr1, comp1, iftrue1 ,,). Questi parametri sono usati come mostrato nel seguente esempio di pseudo-codice.

IF expr1 \u003d comp1 quindi restituisce iftrue1

Altrimenti if expr1 \u003d comp2 quindi restituisce iftrue2

Altrimenti se exprN \u003d compN, restituisce iftrueN

Else return NULL | iffalse;

Innanzitutto, expr1 viene confrontato con comp1. Se sono uguali, viene restituito il valore iftrue1. Se expr1 non è uguale a comp1, ciò che accade dopo dipende dall'impostazione di comp2 e iftrue2. Se specificato, tov expr1 viene confrontato con comp2. Se i valori sono uguali, viene restituito iftrue2. In caso contrario, se ci sono coppie di compN, vengono confrontati i parametri iftrueN, expr1 e compN e iftrueN viene restituito in caso di uguaglianza. Se non è stata trovata alcuna corrispondenza in alcun set di parametri, iffalse viene restituito se questo parametro è stato specificato o NULL.

Tutti i parametri nella funzione DECODE possono essere espressioni. Il tipo del valore restituito è uguale al tipo del primo elemento di controllo - parametrocomp 1. Espressione espressione 1 implicitamente convertito in tipo di dati del parametro comp1. Tutte le altre opzioni comp disponibili1 ... compN anche implicitamente convertito in tipo comp1. DECODE considera il valore NULL uguale a un altro valore NULL, ad es. se expr1 è NULL e comp3 è NULL e comp2 non è NULL, viene restituito iftrue3. Diamo un'occhiata ad alcuni esempi.

Query 1: selezionare la decodifica (1234, 123, "123 è una corrispondenza") da doppia;

Query 2: selezionare la decodifica (1234, 123, "123 è una corrispondenza", "Nessuna corrispondenza") dal doppio;

Query 3: selezionare decodifica ('search', 'comp1', 'true1', 'comp2', 'true2', 'search', 'true3', substr ('2search', 2, 6), 'true4', ' false ') dal doppio;

Richiedi uno confronta il valore di 1234 e 123. Poiché non sono uguali, iftrue1 viene ignorato e poiché il valore iffalse non è definito, viene restituito NULL. La query due è identica alla query 1 con l'eccezione che iffalse è specificato. Poiché 1234 non è uguale a 123, viene restituito iffalse - "Nessuna corrispondenza". La query tre verifica i valori dei parametri per la corrispondenza del valore di ricerca. I parametri comp1 e comp2 non sono uguali a "ricerca", pertanto i risultati di iftrue1 e iftrue2 vengono ignorati. Viene trovata una corrispondenza nella terza operazione di confronto dell'elemento comp3 (posizione parametro 6) e viene restituito iftrue3 (parametro 7) che è равно true3 '. Poiché viene trovata una corrispondenza, non vengono più eseguiti calcoli. Cioè, nonostante il fatto che il valore di comp4 (parametro 8) corrisponda anche a expr1 - questa espressione non viene mai calcolata poiché è stata trovata una corrispondenza nel confronto precedente.

Espressione CASE

Tutti i linguaggi di programmazione di terza e quarta generazione implementano il costrutto case. Come la funzione DECODE, l'espressione CASE consente di implementare la logica if-then-else. Esistono due opzioni per l'utilizzo dell'espressione CASE. Una semplice espressione CASE imposta l'elemento sorgente per il confronto una volta, quindi elenca tutte le condizioni di verifica necessarie. Il CASE complesso (cercato) calcola entrambe le istruzioni per ciascuna condizione.

Un'espressione CASE ha tre parametri richiesti. La sintassi di un'espressione dipende dal tipo. Per una semplice espressione CASE, sembra così

CASE search_expr

QUANDO comparazione_espr1 POI iftrue1

)

La funzione TRUNC restituisce il numero n troncato a m cifre dopo il punto decimale. Il parametro m potrebbe non essere indicato - in questo caso, n viene troncato a un numero intero.

SELEZIONA TRUNC (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100.99) X3,

TRUNC (100.25678, 2) X4

DAL DOPPIO

Funzione SIGN (n)

La funzione SIGN determina il segno di un numero. Se n è positivo, la funzione restituisce 1. Se negativo, viene restituito -1. Se uguale a zero, viene restituito 0. Ad esempio:

SELEZIONA SIGN (100.22) X1, SIGN (-100.22) X2, SIGN (0) X3

DAL DOPPIO

Una caratteristica interessante di questa funzione è la possibilità di trasmettere m uguale a zero - in questo caso, non vi è alcun errore di divisione per 0.

Funzione POWER (n, m)

La funzione POWER aumenta il numero n alla potenza di m. Il grado può essere frazionario e negativo, il che espande significativamente le capacità di questa funzione.

SELEZIONA POTENZA (10, 2) X1, POTENZA (100, 1/2) X2,

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

DAL DOPPIO

X1 X2 X3 X4
100 10 10 0,1

In alcuni casi, può verificarsi un'eccezione quando si chiama questa funzione. Per esempio:

SELEZIONA POTENZA (-100, 1/2) X2

DAL DOPPIO

In questo caso, viene effettuato un tentativo di calcolare la radice quadrata di un numero negativo, che porterà al verificarsi dell'errore ORA-01428 "Argomento fuori intervallo".

Funzione SQRT (n)

Questa funzione restituisce la radice quadrata di n. Per esempio:

SELEZIONA SQRT (100) X

DAL DOPPIO

Funzioni EXP (n) e LN (n)

La funzione EXP aumenta e alla potenza di n, e la funzione LN calcola il logaritmo naturale di n (mentre n deve essere maggiore di zero). Esempio:

SELEZIONA EXP (2) X1, LN (1) X2, LN (EXP (2)) X3

Funzione NVL

La funzione NVL viene solitamente utilizzata più spesso. La funzione riceve due parametri: NVL (expr1, expr2). Se il primo parametro expr1 non è NULL, la funzione restituisce il suo valore. Se il primo parametro è NULL, la funzione restituisce invece il valore del secondo parametro expr2.

Considera un esempio pratico. Il campo COMM nella tabella EMP può contenere valori NULL. Quando si esegue una query del modulo:

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

DA SCOTT.EMP

il valore NULL verrà sostituito da zero. Si noti che se un valore viene formato utilizzando una funzione, viene assegnato un alias ad esso. I risultati della query appariranno come:

EMPNO ENAME COMM NVL_COMM
7369 fabbro 0
7499 ALLEN 300 300
7521 reparto 500 500
7566 Jones 0
7654 MARTIN 1400 1400
7698 BLAKE 0
7782 CLARK 0
7839 RE 0
7844 TURNER 0 0
7900 JAMES 0
7902 GUADO 0
7934 MUGNAIO 0

Funzione CEIL (n)

La funzione CEIL restituisce il numero intero più piccolo maggiore o uguale al numero n passato come parametro. Per esempio:

SELEZIONA CEIL (100) X1, CEIL (-100) X2, CEIL (100.2) X3, CEIL (-100.2) X4

DAL DOPPIO

Funzione TRUNC (n [, m])

La funzione TRUNC restituisce il numero n troncato a m cifre dopo il punto decimale. Il parametro m potrebbe non essere indicato - in questo caso, n viene troncato a un numero intero.

SELEZIONA TRUNC (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100.99) X3,

TRUNC (100.25678, 2) X4

DAL DOPPIO

Funzione SIGN (n)

La funzione SIGN determina il segno di un numero. Se n è positivo, la funzione restituisce 1. Se negativo, viene restituito -1. Se uguale a zero, viene restituito 0. Ad esempio:

SELEZIONA SIGN (100.22) X1, SIGN (-100.22) X2, SIGN (0) X3

DAL DOPPIO

Una caratteristica interessante di questa funzione è la possibilità di trasmettere m uguale a zero - in questo caso, non vi è alcun errore di divisione per 0.

Funzione POWER (n, m)

La funzione POWER aumenta il numero n alla potenza di m. Il grado può essere frazionario e negativo, il che espande significativamente le capacità di questa funzione.

SELEZIONA POTENZA (10, 2) X1, POTENZA (100, 1/2) X2,

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

DAL DOPPIO

X1 X2 X3 X4
100 10 10 0,1

In alcuni casi, può verificarsi un'eccezione quando si chiama questa funzione. Per esempio:

SELEZIONA POTENZA (-100, 1/2) X2

DAL DOPPIO

In questo caso, viene effettuato un tentativo di calcolare la radice quadrata di un numero negativo, che porterà al verificarsi dell'errore ORA-01428 "Argomento fuori intervallo".

Funzione SQRT (n)

Questa funzione restituisce la radice quadrata di n. Per esempio:

SELEZIONA SQRT (100) X

DAL DOPPIO

Funzioni EXP (n) e LN (n)

La funzione EXP aumenta e alla potenza di n, e la funzione LN calcola il logaritmo naturale di n (mentre n deve essere maggiore di zero). Esempio:

SELEZIONA EXP (2) X1, LN (1) X2, LN (EXP (2)) X3

Funzione TO_CHAR con numeri

Funzioni per la conversione di dati in altri tipi di dati. TO_CHAR (numero) converte un numero in testo. TO_NUMBER (stringa) converte il testo in un numero.

SELECT TO_CHAR (123) FROM DUAL restituirà la stringa 123, SELECT TO_NUMBER (`12345") FROM DUAL restituirà il numero 12345.

Lavoro di laboratorio. Cambia il formato dei numeri visualizzati

Modifiche al formato dei valori numerici in Oracle SQL, la funzione TO_CHAR per lavorare con valori numerici.

L'obiettivo:

Scrivi una query che mostri informazioni sul nome, cognome e stipendio dei dipendenti dalla tabella dei dipendenti nel formato mostrato in Fig. 3.4-1:

Figura. 3.4 -1

Allo stesso tempo, i dati devono essere ordinati in modo che le prime righe vengano visualizzate per i dipendenti con il salario più elevato.

Nota:

Alcuni valori salariali in fig. 3.4-1 sono stati modificati, quindi potrebbero non corrispondere ai tuoi valori.

Decisione:

SELEZIONA first_name AS “Nome”, last_name Come “Cognome”, TO_CHAR (SALARY, “L999999999.99”) Come “Stipendio” DA dipendenti. ORDINA PER SALARY DESC.

Funzioni TO_NUMBER e TO_DATE

La funzione di convertire una stringa in una data TO_DATE (stringa, formato). Possibili valori di formato sono già stati discussi sopra, quindi fornirò alcuni esempi sull'uso di questa funzione. Esempi:

SELEZIONARE TO_DATE ("01/01/2010", `DD.MM.YYYY") A PARTIRE DAL DUAL restituirà la data "01/01/2010";

SELEZIONARE TO_DATE ("01.JAN.2010", `DD.MON.YYYY") A PARTIRE DAL DUAL restituirà la data "01.01.2009";

SELEZIONARE TO_DATE ("15-01-10", `DD-MM-YY") A PARTIRE DAL DUAL restituirà la data "15/01/2010".

La funzione di convertire una stringa in un valore numerico TO_NUMBER (stringa, formato). I valori di formato più comuni sono elencati nella tabella, quindi diamo un'occhiata all'applicazione di questa funzione con esempi. Esempi:

SELEZIONARE TO_NUMBER (`100") A PARTIRE DAL DUAL restituirà il numero 100 SELEZIONA TO_NUMBER (`0010.01", "9999D99") A PARTIRE DAL DUAL restituirà il numero 10.01;

SELEZIONARE TO_NUMBER ("500.000", "999G999") A PARTIRE DAL DUAL restituirà il numero 500000.

Elemento RR in formato data

L'elemento formato data e ora RR è simile all'elemento formato data e ora AA, ma ciò fornisce ulteriore flessibilità per la memorizzazione dei valori di data in altri secoli. Un elemento del formato data e ora RR consente di memorizzare le date del 20 ° secolo nel 21 ° secolo, indicando solo le ultime due cifre dell'anno.

Se le ultime due cifre dell'anno corrente sono comprese tra 00 e 49, l'anno restituito ha le stesse prime due cifre dell'anno corrente.

Se le ultime due cifre dell'anno corrente vanno da 50 a 99, le prime 2 cifre dell'anno restituito sono 1 in più rispetto alle prime 2 cifre dell'anno corrente.

Se le ultime due cifre dell'anno corrente sono comprese tra 00 e 49, le prime 2 cifre dell'anno restituito sono 1 in meno rispetto alle prime 2 cifre dell'anno corrente.

Se le ultime due cifre dell'anno corrente vanno da 50 a 99, l'anno restituito ha le stesse prime due cifre dell'anno corrente.

Funzione NVL

La funzione NVL viene solitamente utilizzata più spesso. La funzione riceve due parametri: NVL (expr1, exp2). Se il primo parametro expr1 non è NULL, la funzione restituisce il suo valore. Se il primo parametro è NULL, la funzione restituisce invece il valore del secondo parametro exp2.

Esempio: selezionare NVL (supplier_city, n / a ") dai fornitori:

L'istruzione SQL precedente restituirà n / a se il campo supplier_city contiene un valore zero, altrimenti restituirà il valore di supplier_city.

Un altro esempio di utilizzo della funzione NVL in Oracle / PLSQL è:

seleziona fornitori_id, NVL (fornitore_desc, nome_fornitore) dai fornitori.

Questa istruzione SQL verrà restituita nome del fornitore campo if supplier_desc contiene un valore nullo. Altrimenti tornerà supplier_desc.

Ultimo esempio: l'utilizzo della funzione NVL in Oracle / PLSQL è: selezionare NVL (commissione, 0) dalle vendite;

Questa istruzione SQL ha restituito 0 if commissione il campo contiene un valore nullo. Altrimenti, ritornerebbe commissioni campo.

Conversioni NVL per vari tipi di dati

Per convertire un valore indefinito in un valore reale, viene utilizzata la funzione NVL: NVL ( espressione1, espressione 2), dove:

expression1- Il valore originale o calcolato, che potrebbe non essere definito.

espressione2 - Un valore che viene sostituito con un valore non definito.

Nota: La funzione NVL può essere utilizzata per convertire qualsiasi tipo di dati, ma il risultato sarà sempre lo stesso tipo di espressione 1.

Conversione NVL per vari tipi:

NUMERO - NVL (colonna numerica, 9).

CHAR o VARCHAR2 - NVL (caratteri | colonna, "Non disponibile").

Lavoro di laboratorio. Applicazione della funzione NVL

Funzione NVL per lavorare con valori null in Oracle SQL.

L'obiettivo:

Scrivi una query che visualizzi le informazioni sul nome e cognome dei dipendenti dai dipendenti della h. Tabella, così come il tasso di commissione (colonna COMMISSIONE_PCT) per il dipendente. In questo caso, per quei dipendenti per i quali la commissione non è definita, è necessario visualizzare il valore 0. Il risultato della query dovrebbe essere come mostrato in Fig. 3.5-1.

Figura. 3.5 -1 (mostra i valori che iniziano alla riga 51)

Decisione:

Il codice per la richiesta corrispondente può essere il seguente:

SELEZIONA first_name AS "Nome", last_name Come "Cognome", NVL (Commiss_PCT, 0) Come "Commissione rate" DA dipendenti.

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam