Oracle Database
Manipolazione delle stringhe
Ricerca…
Concatenazione: operatore || o concat ()
Oracle SQL e PL / SQL ||
operatore consente di concatenare 2 o più stringhe insieme.
Esempio:
Supponendo la seguente tabella customers
:
id firstname lastname
--- ----------- ----------
1 Thomas Woody
Query:
SELECT firstname || ' ' || lastname || ' is in my database.' as "My Sentence"
FROM customers;
Produzione:
My Sentence
---------------------------------
Thomas Woody is in my database.
Oracle supporta anche la funzione standard SQL CONCAT(str1, str2)
:
Esempio:
Query:
SELECT CONCAT(firstname, ' is in my database.') from customers;
Produzione:
Expr1
---------------------------------
Thomas is in my database.
SUPERIORE
La funzione UPPER consente di convertire tutte le lettere minuscole in una stringa in maiuscolo.
SELECT UPPER('My text 123!') AS result FROM dual;
Produzione:
RESULT
------------
MY TEXT 123!
INITCAP
La funzione INITCAP
converte il caso di una stringa in modo che ogni parola inizi con una lettera maiuscola e tutte le lettere successive siano in minuscolo.
SELECT INITCAP('HELLO mr macdonald!') AS NEW FROM dual;
Produzione
NEW
-------------------
Hello Mr Macdonald!
INFERIORE
LOWER converte tutte le lettere maiuscole in una stringa in lettere minuscole.
SELECT LOWER('HELLO World123!') text FROM dual;
Uscite:
testo |
---|
ciao world123! |
Espressione regolare
Diciamo che vogliamo sostituire solo i numeri con 2 cifre: l'espressione regolare li troverà con (\d\d)
SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '(\d\d)', '#')
FROM dual;
Risultati in:
'2, 5, and # are numbers in this example'
Se voglio scambiare parti del testo, uso \1
, \2
, \3
per chiamare le stringhe corrispondenti:
SELECT REGEXP_REPLACE ('swap around 10 in that one ', '(.*)(\d\d )(.*)', '\3\2\1\3')
FROM dual;
SUBSTR
SUBSTR
recupera parte di una stringa indicando la posizione iniziale e il numero di caratteri da estrarre
SELECT SUBSTR('abcdefg',2,3) FROM DUAL;
ritorna:
bcd
Per contare dalla fine della stringa, SUBSTR
accetta un numero negativo come secondo parametro, ad es
SELECT SUBSTR('abcdefg',-4,2) FROM DUAL;
ritorna:
de
Per ottenere l'ultimo carattere in una stringa: SUBSTR(mystring,-1,1)
LTRIM / RTRIM
LTRIM
e RTRIM
rimuovere caratteri dall'inizio o fine (rispettivamente) di una stringa. Un set di uno o più caratteri può essere fornito (di default è uno spazio) da rimuovere.
Per esempio,
select LTRIM('<===>HELLO<===>', '=<>')
,RTRIM('<===>HELLO<===>', '=<>')
from dual;
Ritorna:
HELLO<===>
<===>HELLO