SQL TRIM
Removes leading and trailing whitespace — but leaves any whitespace INSIDE the string completely untouched.
What & Why
TRIM(text) strips whitespace from both ends of a string, leaving the interior exactly as it was. This is a genuinely important distinction: TRIM fixes leading/trailing spaces, but does nothing about multiple spaces sitting between words in the middle.
See How It Works
Marketing wants to remove edge padding from campaign labels while proving that TRIM leaves repeated spaces inside a name untouched.
| id | name | channel | spend | start_date | end_date | status | target_segment |
|---|---|---|---|---|---|---|---|
| 1 | Spring Launch | google_ads | 55000.00 | 2024-01-15 | 2024-03-31 | active | smb |
| 2 | Retention Webinar | 45000.00 | 2024-02-10 | 2024-04-15 | active | enterprise | |
| 3 | Finance Retargeting | 50000.00 | 2024-03-12 | 2024-05-31 | active | enterprise | |
| 4 | Enterprise Search | google_ads | 60000.00 | 2024-04-01 | 2024-06-30 | active | enterprise |
| id | name | padded_name | trimmed_name |
|---|---|---|---|
| 1 | Spring Launch | [ Spring Launch ] | [Spring Launch] |
| 2 | Retention Webinar | ? | ? |
| 3 | Finance Retargeting | ? | ? |
| 4 | Enterprise Search | ? | ? |
TRIM removes Spring Launch's edge padding while the three internal spaces remain.
SELECT
id,
name,
'[' || ' ' || REPLACE(name, ' ', ' ') || ' ' || ']' AS padded_name,
'[' || TRIM(' ' || REPLACE(name, ' ', ' ') || ' ') || ']' AS trimmed_name
FROM marketing.campaigns
ORDER BY id;Practice this concept
Marketing wants edge padding removed from campaign labels without collapsing repeated spaces inside the names.
marketingPrefix tables with marketing.table_name.
idnamepadded_nametrimmed_namemarketing.campaigns| Column | Type |
|---|---|
| id | integer |
| name | text |
| channel | text |
| spend | numeric |
| start_date | date |
| end_date | date |
| status | text |
| target_segment | text |
| legacy_id | text |
Sign up free to try it on a real business scenario