Oracle
 sql >> Database >  >> RDS >> Oracle

Funzioni a riga singola in Oracle sql

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.