Вы строите ключ для дедупликации email и хотите устранить три источника «ложных разных» значений: пробелы по краям, разный регистр и точки в локальной части (для Gmail-подобных адресов). Какое выражение учитывает все три фактора?

ALOWER(TRIM(email)) без удаления точек из локальной части адреса
BLOWER(TRIM(REPLACE(email, '.', ''))) со снятием пробелов и точек
CUPPER(TRIM(email)) с приведением символов к верхнему регистру
DTRIM(REPLACE(email, '.', '')) без приведения букв к одному регистру
Правильный ответ. Для нормализации email комбинируют TRIM, LOWER и REPLACE для удаления точек.

Разбор

Пробелы по краям, разный регистр и точки в локальной части — частые причины ложных дубликатов. LOWER(TRIM(REPLACE(email, '.', ''))) устраняет все три источника шума: TRIM снимает пробелы, REPLACE убирает точки, LOWER приводит к единому регистру. Только LOWER(TRIM(...)) или UPPER(TRIM(...)) оставляет точки и сохранит j.smith@gmail.com отдельно от jsmith@gmail.com. Без LOWER сохраняется чувствительность к регистру.

Проверь себя · 1/3разбор после ответа
В таблице products код товара хранится как текст, например 00123 (важны ведущие нули). Вы хотите соединить её с catalog(code) (тоже текст). Какое действие чаще всего приводит к багу и пропущенным совпадениям?
Тренировать SQL в Telegram

Ещё вопросы по теме «Строки и приведение типов»