Learn SQL/Intermediate/String Functions/SQL Standardize Text Case

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.

idcampaign_idemailcreated_atqualified_atconverted_atlead_scoresourcecountry
3011ana@example.com2024-01-21 09:10:00+002024-01-22 11:00:00+002024-02-02 10:00:00+0086google_adsUS
3021ben@example.com2024-01-24 12:40:00+00NULLNULL52google_adsCA
3032chloe@example.com2024-02-16 08:30:00+002024-02-18 14:20:00+00NULL74emailGB
3043dev@example.com2024-03-20 17:15:00+002024-03-21 09:00:00+002024-04-04 16:00:00+0091linkedinUS
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_sourceleads
google_ads2
email1
linkedin1

LOWER(TRIM(source)) produces the three real source groups.

Now You Try

Practice this concept

Marketing wants equivalent lead sources grouped regardless of capitalization or edge spaces.

Available schema
marketing

Prefix tables with marketing.table_name.

standardized_sourceleads
marketing.leads
ColumnType
idinteger
campaign_idinteger
emailtext
created_attimestamp with time zone
qualified_attimestamp with time zone
converted_attimestamp with time zone
lead_scoreinteger
sourcetext
countrytext
archive_statustext
query.sql
Intermediate business practice

Sign up free to try it on a real business scenario