SQL TRIM
Мы все с этим сталкивались: назойливые пробелы, странные, непоследовательные форматы или необъяснимые звездочки, скрывающиеся в конце значения столбца — строки являются одним из самых изменчивых типов данных в ваших наборах данных. Они, вероятно, не имеют единого регистра, различаются по длине и неизбежно содержат символы, которые нужно удалить.
Представляем: функция SQL TRIM, которая удаляет начальные и конечные символы строки. По умолчанию она удаляет пробелы в начале и конце строки.
Как использовать функцию SQL TRIM
Синтаксис использования функции TRIM выглядит следующим образом:
trim(<field_name> [, <characters_to_remove>])
Как мы уже говорили, по умолчанию <characters_to_remove> — это пробел, так что если вы выполните trim(' string with extra leading space'), это вернет 'string with extra leading space'. Вы можете явно указать отдельные символы или шаблон для удаления из ваших строк.
Пример использования функции SQL TRIM
select
first_name,
concat('*', first_name, '**') as test_string,
trim(test_string, '*') as back_to_first_name
from {{ ref('customers') }}
limit 3
После выполнения этого запроса результирующая таблица orders будет выглядеть следующим образом:
| first_name | test_string | back_to_first_name |
|---|---|---|
| Julia | Julia* | Julia |
| Max | Max* | Max |
| Laura | Laura* | Laura |
В этом запросе вы добавляете лишние звездочки к строке, используя функцию CONCAT, и очищаете ее с помощью функции TRIM. Хотя я указал одну звездочку в самой функции TRIM, она распознает это как шаблон для удаления из начала и конца строки, поэтому двойные звездочки (**) были удалены из конца столбца test_string.
Синтаксис функции SQL TRIM в Snowflake, Databricks, BigQuery и Redshift
Google BigQuery, Amazon Redshift, Snowflake и Databricks поддерживают возможность использования функции TRIM. Кроме того, синтаксис для обрезки строк одинаков во всех них с использованием функции TRIM. Эти хранилища данных также поддерживают функции RTRIM и LTRIM, которые позволяют удалять символы только с правой и левой стороны строки соответственно.
Примеры использования функции TRIM
Если строковые значения в ваших исходных данных содержат лишние пробелы или случайные символы, вы можете использовать функции TRIM (и подмножества RTRIM и LTRIM), чтобы быстро их удалить. Вероятно, вы будете выполнять эту очистку в стейджинговых моделях, где вы, вероятно, стандартизируете регистр и выполняете другие незначительные изменения форматирования строковых значений, чтобы использовать чистый и согласованный формат во всех ваших последующих моделях.