SELECT
REPLACE(phone, ' ', '') AS phone_clean
FROM users
LIMIT 2;
Результат:
phone_clean ------------- +79161234567 +77011234567
SELECT
REPLACE(REPLACE(amount_text, ' ', ''), ',', '.') AS amount_num
FROM payments
LIMIT 2;
Результат:
amount_num ---------- 1990.00 4990.50
SELECT
REPLACE(city, 'ё', 'е') AS city_norm
FROM users
LIMIT 2;
Результат:
city_norm --------- Орел КоролевПорешать SQL-задачи в тренажёре →
Спрашивают в контексте очистки и нормализации данных. Идёт в паре с TRIM, LOWER и REGEXP_REPLACE — типичный конвейер для телефонов, сумм и текстовых ключей.
Да, REPLACE учитывает регистр: 'Москва' и 'москва' для него разные строки. Чтобы искать без учёта регистра, сначала приведите строку к одному регистру через LOWER/UPPER или используйте REGEXP_REPLACE с флагом нечувствительности к регистру.
Вкладывайте вызовы REPLACE друг в друга: REPLACE(REPLACE(x, 'a', ''), 'b', ''). Для более сложной логики удобнее REGEXP_REPLACE с перечислением вариантов через | в PostgreSQL или MySQL 8+.
Нет, REPLACE ищет только точную подстроку. Для замены по шаблону используйте REGEXP_REPLACE в PostgreSQL и MySQL 8+. В SQLite встроенного regexp_replace нет — придётся подключать расширение или чистить данные на стороне приложения.
Строковые функции · null-handling
COALESCE · NULLIF · COUNT · SUBSTR · CAST · CONCAT
Открыть SQL-тренажёр (565 задач) →