In MariaDB, TRIM() è una funzione di stringa incorporata che rimuove i caratteri dall'inizio o dalla fine di una stringa.
Per impostazione predefinita rimuove gli spazi iniziali e finali, ma puoi specificare quale carattere rimuovere e da quale lato vorresti rimuoverlo.
Sintassi
Il TRIM() la funzione può essere utilizzata come segue:
TRIM([remstr FROM] str) Oppure:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Dove str è la stringa da cui rimuovere eventuali spazi finali e remstr è la stringa da rimuovere.
Se remstr non è fornito, quindi TRIM() rimuove gli spazi.
Esempio
Ecco un esempio di base:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed"; Risultato:
+------------------------+------------------+ | Untrimmed | Trimmed | +------------------------+------------------+ | Caribbean Island | Caribbean Island | +------------------------+------------------+
Questo esempio utilizza la sintassi più elementare. Tutto ciò che abbiamo fatto è stato fornire lo spago da tagliare. Non abbiamo specificato quale/i carattere/i tagliare, quindi tutti gli spazi sono stati tagliati da entrambi i lati della stringa.
Possiamo anche vedere che lo spazio all'interno della stringa rimane intatto.
Il BOTH Argomento
Per impostazione predefinita, TRIM() taglia entrambi i lati della corda. Tuttavia, puoi specificare esplicitamente BOTH se lo desideri:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed"; Risultato:
+------------------------+------------------+ | Untrimmed | Trimmed | +------------------------+------------------+ | Caribbean Island | Caribbean Island | +------------------------+------------------+
Otteniamo lo stesso risultato dell'esempio precedente.
Il LEADING Argomento
Specificando LEADING limita l'operazione di ritaglio solo all'inizio della stringa:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed"; Risultato:
+------------------------+---------------------+ | Untrimmed | Trimmed | +------------------------+---------------------+ | Caribbean Island | Caribbean Island | +------------------------+---------------------+
Possiamo vedere che esistono ancora spazi sul lato destro della stringa tagliata. Solo la parte sinistra è stata tagliata.
Il TRAILING Argomento
Specificando TRAILING limita l'operazione di ritaglio solo all'inizio della stringa:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed"; Risultato:
+------------------------+---------------------+ | Untrimmed | Trimmed | +------------------------+---------------------+ | Caribbean Island | Caribbean Island | +------------------------+---------------------+
Questa volta è stata tagliata solo la parte destra. Esistono ancora degli spazi sul lato sinistro della stringa tagliata.
Specifica una stringa da tagliare
Ecco un esempio per specificare quale carattere tagliare:
SELECT
'...mountain...' AS "Untrimmed",
TRIM('.' FROM '...mountain...') AS "Trimmed"; Risultato:
+----------------+----------+ | Untrimmed | Trimmed | +----------------+----------+ | ...mountain... | mountain | +----------------+----------+
Non deve essere un singolo personaggio. Puoi specificare qualsiasi stringa da tagliare:
SELECT
TRIM('.' FROM '.+.mountain.+.') AS "1",
TRIM('.+' FROM '.+.mountain.+.') AS "2",
TRIM('+.' FROM '.+.mountain.+.') AS "3",
TRIM('.+.' FROM '.+.mountain.+.') AS "4"; Risultato:
+--------------+--------------+--------------+----------+ | 1 | 2 | 3 | 4 | +--------------+--------------+--------------+----------+ | +.mountain.+ | .mountain.+. | .+.mountain. | mountain | +--------------+--------------+--------------+----------+
Puoi anche tagliare parte della parola se vuoi:
SELECT TRIM('moun' FROM 'mountain'); Risultato:
+------------------------------+
| TRIM('moun' FROM 'mountain') |
+------------------------------+
| tain |
+------------------------------+
Possiamo anche usare BOTH , LEADING e TRAILING argomenti quando si specifica la stringa da tagliare.
Esempio:
SELECT
TRIM(BOTH '.' FROM '...mountain...') AS "Both",
TRIM(LEADING '.' FROM '...mountain...') AS "Leading",
TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing"; Risultato:
+----------+-------------+-------------+ | Both | Leading | Trailaing | +----------+-------------+-------------+ | mountain | mountain... | ...mountain | +----------+-------------+-------------+
Argomenti nulli
Se viene assegnato un null argomento, il risultato è null :
SELECT TRIM(null); Risultato:
+------------+ | TRIM(null) | +------------+ | NULL | +------------+
Modalità Oracle
Quando non in esecuzione in modalità Oracle, se il risultato è vuoto (cioè ha una lunghezza pari a zero) il risultato è una stringa vuota.
Tuttavia, durante l'esecuzione in modalità Oracle, il risultato è null .
Qui è in modalità predefinita (cioè non in modalità Oracle):
SELECT TRIM(''); Risultato:
+----------+
| TRIM('') |
+----------+
| |
+----------+ Passiamo ora alla modalità Oracle:
SET SQL_MODE=ORACLE; Ed esegui di nuovo il codice:
SELECT TRIM(''); Risultato:
+----------+
| TRIM('') |
+----------+
| NULL |
+----------+
C'è anche un modo alternativo per farlo. Invece di passare alla modalità Oracle, puoi utilizzare TRIM_ORACLE() come nome della funzione.
Torniamo alla modalità predefinita:
SET SQL_MODE=DEFAULT;
E ora esegui TRIM_ORACLE() :
SELECT TRIM_ORACLE(''); Risultato:
+-----------------+
| TRIM_ORACLE('') |
+-----------------+
| NULL |
+-----------------+ Argomento mancante
Chiamando TRIM() senza un argomento genera un errore:
SELECT TRIM(); Risultato:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1