Questo fa parte del tutorial di Oracle SQL e contiene buoni esempi, spiegazioni sulle funzioni a riga singola in Oracle Sql
Le funzioni sono programmi che accettano zero o più argomenti e restituiscono un singolo valore.
Le funzioni possono essere a riga singola, funzioni a riga multipla
Discuteremo qui Funzioni a riga singola in SQL
Che cosa sono le funzioni a riga singola in Oracle SQL
Le funzioni a riga singola sono funzioni integrate e includono caratteri, numeri, data, conversione e funzioni definite dall'utente.
Tutte le funzioni a riga singola possono essere utilizzate in programmi SQL o PL/SQL e possono essere utilizzate nelle clausole SELECT, WHERE e ORDER BY.
Le funzioni a riga singola includono TO_CHAR, TO_DATE, UPPER, LOWER ecc
Le funzioni a riga singola possono essere utilizzate anche nella clausola SET e nel comando UPDATE. Le funzioni a riga singola non possono essere utilizzate in una clausola HAVING.
Esaminiamo le varie importanti funzioni a riga singola
Funzioni del personaggio in SQL
Le funzioni dei caratteri sono:
LOWER('char') :convert string in minuscolo
SQL> select ename from "EMP"; ENAME ---------- Blake Clark Scott SQL> select lower(ename) from "EMP"; LOWER(ENAM ---------- blake clark scott
UPPER('CHAR') :converte la stringa in maiuscolo
SQL> select upper(ename) from "EMP"; UPPER(ENAM ---------- BLAKE CLARK SCOTT
INITCAP('Char') :restituisce una stringa con la prima lettera di ogni parola in maiuscolo
SQL> select initcap(ename) from "EMP"; INITCAP(EN ---------- Blake Clark Scott
CONCAT – La funzione ha un limite di due parametri.
SQL> select concat(ename,DEPTNO) from emp; CONCAT(ENAME,DEPTNO) -------------------------------------------------- Blake10 Clark10 Scott20 SQL> select concat(ename,empno,DEPTNO) from emp; select concat(ename,empno,DEPTNO) from emp * ERROR at line 1: ORA-00909: invalid number of arguments
LENGTH :restituisce la lunghezza della stringa
SQL> select ename,length(ename) from emp; ENAME LENGTH(ENAME) ---------- ------------- Blake 5 Clark 5 Scott 5
LENGTHB:restituisce la lunghezza di una stringa in byte
SQL> select ename,length(ename),lengthb(ename) from emp; ENAME LENGTH(ENAME) LENGTHB(ENAME) ---------- ------------- -------------- Blake 5 5 Clark 5 5 Scott 5 5
INSTR :restituisce l'indice della stringa cercata all'interno di una stringa,
SQL> select ename,instr(ename,'A') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 0 Clark 0 Scott 0 SQL> select ename,instr(ename,'a') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 3 Clark 3 Scott 0
LPAD:pad sinistro una stringa con n caratteri
SQL> select ename,lpad(ename,12) from emp; ENAME LPAD(ENAME,12) ---------- ------------------------------------ Blake Blake Clark Clark Scott Scott SQL> select ename,lpad(ename,12,'-') from emp; ENAME LPAD(ENAME,12,'-') ---------- ------------------------------------ Blake -------Blake Clark -------Clark Scott -------Scott
LTRIM:elimina i caratteri iniziali da una stringa
SQL> select ltrim(' name') from dual; LTRI ---- name SQL> select ltrim(' name ') from dual; LTRIM(' ------- name SQL> select LTRIM('000123', '0') from dual; LTR --- 123 SQL> select LTRIM('1000123', '0') from dual; LTRIM(' ------- 1000123
REPLACE:effettua una ricerca sottostringa e sostituisci
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes -------------- BLACK and BLUE
SUBSTR – restituisce una sezione di stringa specificata in valori numerici
SUBSTRB – come SUBSTR solo con byte
SOUNDEX – restituisce una rappresentazione fonetica di una stringa
TRANSLATE – esegue la ricerca e la sostituzione dei caratteri
TRIM – stringa di caratteri iniziali e finali della stringa
Examples select emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') from dept; select lower(emp_name) from employee; select upper(first_name) from emp;
Come spiegato, la funzione di riga singola funziona su ogni riga
Correlato: elaborazione della decodifica Oracle sql
Funzioni numeriche in Sql
Le funzioni numeriche sono:
ROUND :arrotonda un numero
SQL> select round(3.456) from dual; ROUND(3.456) ------------ 3 SQL> select round(3.456,2) from dual; ROUND(3.456,2) -------------- 3.46
TRUNC :tronca un numero
MOD:restituisce il modulo, ovvero il resto
SQL> select mod(4,2) from dual; MOD(4,2) ---------- 0 SQL> select mod(4,3) from dual; MOD(4,3) ---------- 1
SIGN:restituisce positivo, negativo o zero
CEIL – restituisce il numero successivo più alto
SQL> select ceil(3.1) from dual; CEIL(3.1) ---------- 4 SQL> select ceil(3) from dual; CEIL(3) ---------- 3
LOG – restituisce il logaritmo
FLOOR – restituisce il numero successivo più piccolo
SQL> select floor(3.1) from dual; FLOOR(3.1) ---------- 3 SQL> select floor(3) from dual; FLOOR(3) ---------- 3
SQRT – restituisce la radice quadrata di un numero
Examples SELECT SQRT(25) "Square root" FROM DUAL; SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;
Funzioni Oracle Date
Le funzioni Oracle Date sono:
SYSDATE :restituisce la data corrente
DUAL
MONTHS_BETWEEN (Restituisce un numero) :restituisce il numero del mese compreso tra due date
ADD_MONTHS :aggiungi un numero di mesi a date
NEXT_DAY :restituisce il giorno della settimana successivo a una data determinata
LAST_DAY :restituisce l'ultimo giorno del mese
DBTIMEZONE – restituisce il fuso orario del database
TRUNC:tronca una data.
/>CURRENT_TIMESTAMP:restituisce la data e l'ora nel formato TIMESTAMP
Examples SQL> select CURRENT_TIMESTAMP from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 01-SEP-19 04.33.26.493097 PM +00:00 SQL> select sysdate from dual; SYSDATE --------------- 01-SEP-19
Funzioni di conversione di tipo esplicito
TO_CHAR - converte il numero o la data in VARCHAR2
TO_NUMBER :converte il carattere in numero
TO_DATE:converte in data
Examples SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2 ; TO_CHAR(SYSDATE,'DD- -------------------- 01-SEP-2019,34
Altre funzioni
NVL (espr1, expr2) e NVL3
NVL – accetta due argomenti:NVL(x1, x2), restituisce x2 quando x1 è NULL o x1 quando x1 non è NULL. NVL2 – accetta tre argomenti:NVL2(x1, x2, x3), restituisce x3 quando x1 è NULL o x2 quando x1 non è NULL
DECODE Questa funzione funziona come un'istruzione IF-THEN-ELSE o CASE.
COALESCE – restituisce il primo valore non NULL in un elenco
SYS_CONTEXT – restituisce gli attributi di sistema
UID – restituisce l'ID utente numerico per la sessione corrente
Piccolo quiz per testare le conoscenze sulle funzioni a riga singola in SQL
Domanda 1 :stai utilizzando funzioni a riga singola in un'istruzione select. Quale funzione può essere meglio classificata come simile in funzione a un'istruzione if-then-else?
A) sqrt( )
B) decode( )
C) rowidtochar()
D) new_time( )
Spiegazione:
La funzione decode() agisce come una clausola if-then-else nelle tue istruzioni SQL. La scelta sqrt() non è corretta perché sqrt() produce la
radice quadrata di un numero. La scelta new_time() non è corretta perché la funzione new_time() restituisce una nuova ora in base ai valori specificati nella chiamata a quella funzione.
Infine, la scelta rowidtochar() non è corretta perché rowidtochar() è una funzione che converte le informazioni ROWID in informazioni CHAR.
Domanda 2:
Si desidera utilizzare funzioni a riga singola nelle istruzioni SQL. Quali delle seguenti tre sono funzioni numeriche? (Scegli tre dei quattro.)
A) sinh( )
B) sqrt( )
C) to_number()
D) round( )
Spiegazione:
L'unica funzione non numerica in questo list è la funzione to_number(),
che è un'operazione di conversione.
Domanda 3 La seguente istruzione SQL è stata presa da una sessione SQL*Plus:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr(ENAME,1,1)> to_number ('V') e EMPNO> 1000
ordinato da EMPNO desc, ENAME asc;
Quale delle seguenti righe nell'istruzione select mostrata nel
blocco di codice precedente contiene un errore?
A) selezionare decode(EMPNO, 58385, 'INACTIVE', 'ACTIVE') empno
B) da EMP
C) e EMPNO> 02000
D) dove substr(ENAME,1,1 )> to_number('S')
E) ordine da EMPNO desc, ENAME asc;
Spiegazione:(D)
I caratteri alfabetici, come la S, non possono essere convertiti in numeri. Quando questa istruzione viene eseguita, produrrà un errore su questa riga. Le
altre righe in questa query sono corrette come composte.
Domanda 4 Quale istruzione SELECT otterrà il risultato "elloworld" dalla stringa "HelloWorld"?
A. SELECT SUBSTR( 'HelloWorld',1) FROM dual;
B. SELECT INITCAP(TRIM ("HelloWorld", 1,1)) FROM dual;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM (' H' FROM 'HelloWorld')) FROM dual;
Risposta:E
Spero che questo post ti piaccia sulle funzioni a riga singola in SQL. Si prega di fornire il feedback
Articoli correlati
Funzioni analitiche in Oracle :le funzioni analitiche Oracle calcolano un valore aggregato in base a un gruppo di righe utilizzando over partition by Oracle , differiscono dalle funzioni aggregate
rank in Oracle :RANK, DENSE_RANK e ROW_NUMBER sono Oracle Analytic funzione che vengono utilizzate per classificare le righe nel gruppo di righe chiamato window
Funzione Lead in Oracle:controlla la funzione LAG in Oracle e la funzione Lead in Oracle, come usarle nelle query analitiche e come funziona in Oracle sql
Le prime N query in Oracle:dai un'occhiata a questa pagina per esplorare i vari modi per ottenere le prime N query in Oracle e impaginazione nel database Oracle query Oracle.