REPLACE и TRIM
Часть раздела Продвинутый уровень путешествия по SQL на Coddy — урок 9 из 27.
REPLACE(s, find, with) заменяет каждое вхождение find в s на with:
REPLACE('555-123-4567', '-', '') -- '5551234567'TRIM(s) удаляет пробелы с обоих концов. Передайте второй аргумент, чтобы обрезать другие символы, и используйте LTRIM / RTRIM для односторонней обрезки:
TRIM(' hi ') -- 'hi'
TRIM('---hi---', '-') -- 'hi'Вот как можно очистить данные столбцов непосредственно в запросе без обновления таблицы.
Задание
ЛегкоДоступные таблицы и столбцы:
<strong>contacts</strong>:<strong>id</strong>,<strong>phone</strong>
Каждый phone может содержать начальные/конечные пробелы и любое количество разделителей -. Верните id и столбец clean, в котором удалены все пробелы и тире. Отсортируйте по id.
Шпаргалка
REPLACE(s, find, with) заменяет каждое вхождение подстроки:
REPLACE('555-123-4567', '-', '') -- '5551234567'TRIM(s) удаляет пробелы с обоих концов; передайте второй аргумент, чтобы удалить другие символы. Используйте LTRIM / RTRIM для одностороннего удаления:
TRIM(' hi ') -- 'hi'
TRIM('---hi---', '-') -- 'hi'Функции могут быть вложенными для применения нескольких очисток одновременно:
SELECT REPLACE(TRIM(phone), '-', '') AS clean FROM contacts;Попробуйте сами
SELECT id,
-- удалить пробелы и тире
FROM contacts
ORDER BY id
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Продвинутый уровень
2Строковые функции
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE и TRIMКонкатенация с помощью ||Повторение: Счета