SQL Standardize Text Case
Combining TRIM and INITCAP for consistent, presentable names — regardless of how inconsistently the source data was originally entered.
What & Why
Real name data arrives in every case imaginable — all lowercase, all uppercase, randomly mixed. Standardizing means applying INITCAP (for consistent capitalization) after TRIM (to remove stray whitespace first) — the same combination the INITCAP lesson introduced, worth reinforcing as the standard pattern.
See How It Works
BUSINESS QUESTION
Marketing wants equivalent lead sources grouped regardless of capitalization or edge spaces.
| id | campaign_id | created_at | qualified_at | converted_at | lead_score | source | country | |
|---|---|---|---|---|---|---|---|---|
| 301 | 1 | ana@example.com | 2024-01-21 09:10:00+00 | 2024-01-22 11:00:00+00 | 2024-02-02 10:00:00+00 | 86 | google_ads | US |
| 302 | 1 | ben@example.com | 2024-01-24 12:40:00+00 | NULL | NULL | 52 | google_ads | CA |
| 303 | 2 | chloe@example.com | 2024-02-16 08:30:00+00 | 2024-02-18 14:20:00+00 | NULL | 74 | GB | |
| 304 | 3 | dev@example.com | 2024-03-20 17:15:00+00 | 2024-03-21 09:00:00+00 | 2024-04-04 16:00:00+00 | 91 | US |
EXAMPLE QUERY
SELECT
LOWER(TRIM(source)) AS standardized_source,
COUNT(*) AS leads
FROM marketing.leads
GROUP BY standardized_source
ORDER BY leads DESC, standardized_source;RESULT — exact output from the displayed Queryflo rows
| standardized_source | leads |
|---|---|
| google_ads | 2 |
| 1 | |
| 1 |
LOWER(TRIM(source)) produces the three real source groups.
Sign up free to try it on a real business scenario