Rimuovere gli spazi dalle stringhe è un'operazione comune quando si puliscono e preparano i dati. Ogni database implementa le funzioni di manipolazione delle stringhe in modo diverso, ma tutte servono a rendere i dati più puliti e coerenti. In questa guida vedremo come rimuovere gli spazi con SQL in diversi database, tra cui MySQL, PostgreSQL, SQL Server e SQLite.
Perché rimuovere gli spazi?
A volte gli spazi finiscono per errore nei dati, causando problemi di coerenza e precisione in query e report. Rimuoverli aiuta a far funzionare confronti e join come previsto.
Provalo tu stesso
Vuoi testare subito queste funzioni TRIM? Puoi validare le tue query SQL con il nostro SQL Syntax Checker, che supporta i dialetti MySQL, PostgreSQL, SQL Server e SQLite.
Per fare pratica con un database reale, prova DB Fiddle: uno strumento online gratuito che ti permette di eseguire query SQL su database MySQL, PostgreSQL e SQLite direttamente nel browser.
Rimuovere gli spazi in MySQL
In MySQL hai a disposizione diverse funzioni per rimuovere gli spazi. Ci concentreremo su TRIM(), che permette di rimuovere gli spazi iniziali, finali o entrambi.
Sintassi
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
- BOTH: rimuove i caratteri sia iniziali sia finali.
- LEADING: rimuove i caratteri all'inizio.
- TRAILING: rimuove i caratteri alla fine.
- remstr: il carattere o lo spazio da rimuovere (di default lo spazio).
Esempio
SELECT TRIM(' Hello World ') AS trimmed_string;
Output previsto:
+----------------+
| trimmed_string |
+----------------+
| Hello World |
+----------------+
Esempio con un carattere specifico
SELECT TRIM(BOTH '-' FROM '---Hello World---') AS trimmed_string;
Output previsto:
+----------------+
| trimmed_string |
+----------------+
| Hello World |
+----------------+
Rimuovere gli spazi in PostgreSQL
PostgreSQL offre una funzione TRIM() simile.
Esempio
SELECT TRIM(' PostgreSQL User ') AS trimmed_string;
Output previsto:
+------------------+
| trimmed_string |
+------------------+
| PostgreSQL User |
+------------------+
Usare funzioni specifiche
PostgreSQL supporta anche LTRIM() e RTRIM().
- LTRIM(): rimuove gli spazi iniziali.
- RTRIM(): rimuove gli spazi finali.
Esempi
SELECT LTRIM(' Leading whitespace') AS ltrimmed_string;
SELECT RTRIM('Trailing whitespace ') AS rtrimmed_string;
Output previsto:
+--------------------+
| ltrimmed_string |
+--------------------+
| Leading whitespace |
+--------------------+
+--------------------+
| rtrimmed_string |
+--------------------+
| Trailing whitespace|
+--------------------+
Rimuovere gli spazi in SQL Server
SQL Server 2017 e versioni successive supportano la funzione standard TRIM(), che di default rimuove gli spazi sia iniziali sia finali.
Usare TRIM() (SQL Server 2017+)
SELECT TRIM(' SQL Server ') AS trimmed_string;
Output previsto:
+----------------+
| trimmed_string |
+----------------+
| SQL Server |
+----------------+
Usare LTRIM() e RTRIM() (tutte le versioni)
Per le versioni più vecchie di SQL Server, o quando devi rimuovere gli spazi da un solo lato, usa LTRIM() e RTRIM().
SELECT LTRIM(' SQL Server') AS ltrimmed_string;
SELECT RTRIM('SQL Server ') AS rtrimmed_string;
Output previsto:
+-----------------+
| ltrimmed_string |
+-----------------+
| SQL Server |
+-----------------+
+-----------------+
| rtrimmed_string |
+-----------------+
| SQL Server |
+-----------------+
Per rimuovere gli spazi sia iniziali sia finali nelle versioni più vecchie, annida le funzioni:
SELECT LTRIM(RTRIM(' SQL Server ')) AS fully_trimmed_string;
Output previsto:
+----------------------+
| fully_trimmed_string |
+----------------------+
| SQL Server |
+----------------------+
Rimuovere gli spazi in SQLite
In SQLite usa la funzione TRIM(), che si comporta in modo simile all'implementazione di MySQL.
Esempio
SELECT TRIM(' Hello SQLite ') AS trimmed_string;
Output previsto:
+---------------+
| trimmed_string|
+---------------+
| Hello SQLite |
+---------------+
Esempio pratico: pulire i dati in una tabella
Ecco un esempio reale che mostra come usare le funzioni TRIM per ripulire i dati in una tabella. Supponiamo che tu abbia una tabella customers con problemi di spazi:
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
INSERT INTO customers VALUES
(1, ' John Doe ', ' john@example.com'),
(2, 'Jane Smith ', 'jane@example.com '),
(3, ' Bob Wilson', ' bob@example.com ');
UPDATE customers
SET name = TRIM(name),
email = TRIM(email);
SELECT id, CONCAT('[', name, ']') AS name, CONCAT('[', email, ']') AS email
FROM customers;
Questo schema funziona in tutti i principali database, anche se la sintassi esatta di CONCAT può variare leggermente.
Conclusione
Rimuovere gli spazi in SQL è un'operazione semplice ma potente che aiuta nella normalizzazione e preparazione dei dati. Ogni database ha la propria sintassi e le proprie funzionalità, ma la funzione di base resta la stessa. Usa queste funzioni per assicurarti che i dati siano come previsto, ottenendo query e report accurati in tutti i tuoi database SQL.
Beekeeper Studio è una GUI per database gratuita & open source
Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti di Beekeeper Studio
"Beekeeper Studio ha sostituito completamente il mio vecchio workflow SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
"Ho provato tante GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."