N037-E2 Tier 3 · Intermediate · easy ecommerce · Brightlane

Return the ID, name, and city of every customer whose city contains `new`, regardless of capitalization

Part of Pattern Matching (LIKE, ILIKE, SIMILAR TO, Regex) in SQL

The problem

Brightlane's logistics system identifies customers in cities whose name contains new somewhere — a quick way to surface New York, Newcastle, New Orleans, and similar locations.

Write a query to return the ID, name, and city of every customer whose city contains new, regardless of capitalization.

Assumptions:

  • The customers table has one row per customer with an id, a name, and a city.
  • A qualifying customer has a city containing new somewhere in the string, with case ignored.

Output:

  • One row per qualifying customer, with columns id, name, and city.
Schema · ecommerce 5 tables
categories
id integer
name text
parent_id? integer
products
id integer
name text
category_id integer
price numeric
stock_qty integer
attributes? jsonb
order_items
id integer
order_id integer
product_id integer
quantity integer
unit_price numeric
customers
id integer
name text
email text
city? text
country text
created_at timestamptz
is_active boolean
orders
id integer
customer_id integer
ordered_at timestamptz
status text
total_amount numeric

Run previews · Check grades

Write a query, then run it to see results here.

Worked solution Try it yourself first
Solution query
SELECT
  id,
  name,
  city
FROM
  customers
WHERE
  city ILIKE '%new%'

The shape

ILIKE '%new%' matches the substring new anywhere inside the city name, regardless of capitalization. The leading and trailing % make the match positional-agnostic, and ILIKE folds the case so New York, new orleans, and NEWCASTLE all qualify under one pattern.

Clause by clause

  • SELECT id, name, city returns the three columns the logistics report needs. Including the matched city lets the reader confirm why each row was kept.
  • FROM customers reads the customer table.
  • WHERE city ILIKE '%new%' keeps the rows where the city contains new somewhere. With % on both sides, the substring can sit at any position; with ILIKE instead of LIKE, the column's casing does not have to match the pattern's casing.

The trap

% is the wildcard that allows surrounding characters. Without the leading %, the pattern ILIKE 'new%' would only match cities that start with new, dropping Newcastle if it were spelled differently and missing any city where the substring sits in the middle. Without the trailing %, the pattern would require the city to end on new. Both wildcards are load-bearing for an "anywhere in the string" match.

You practiced ILIKE '%pattern%' — case-insensitive substring matching across a column whose values may use varying capitalization conventions.

How you actually get good at SQL

Reading explains SQL. Writing it, over and over with instant feedback, is what makes you fluent.

That's the whole SQLMaxx loop: 600+ real problems, instant AI feedback, mastery you can actually see, and spaced review that won't let you forget.

A stack of SQL practice problem cards, the top card showing an employees table.
615 problems · 66 concepts

Real problems. Not toy examples.

615 hand-built problems spanning all 66 concepts, from basic SELECTs to window functions, built on real schemas and real business questions, the kind you'll actually get asked on the job. Enough reps to make SQL automatic.

A retro computer showing a SQL query marked correct with a green checkmark.
Instant AI feedback

Write a query. Know if it's right in one second.

No copying an answer and hoping it clicked. The AI grader checks your real query against real data, catches exactly what's wrong, and explains the fix in plain English, like a senior analyst reading over your shoulder on every problem.

A circular mastery progress dial filling from blue to green, the SQLMaxx diamond at its center.
Mastery tracking

Stop guessing whether you actually know it.

SQLMaxx tracks every concept and shows you what you've mastered and what's still shaky. Your skills fill in one concept at a time, so 'I think I get joins' becomes something you can prove.

A SQL query editor circled by a blue return arrow with a clock, scheduled to come back for review.
Spaced review

Learn it once. Keep it for good.

Most of what you learn this week fades by next week. So when a concept comes due for review, SQLMaxx hands you a fresh problem to solve from a blank editor, not a flashcard to re-read. A research-backed spaced-repetition algorithm (FSRS) times each return for right before you'd forget, so your SQL is still there months later, when the interview or the job actually needs it.

Practice, feedback, mastery, review. That's the loop that turns reading into real skill.

Start free

No account, no credit card. Start solving in under a minute.