substring¶
substring
извлекает часть текста. Эта функция полезна для очистки текста (или любого значения со строковым типом данных (документация Metabase, англ.)), который хранится в фиксированном формате.
Например, substring
должна хорошо работать с такими строками, как номера SKU (идентификаторы товарной позиции), коды ISO и стандартизированные адреса электронной почты.
Синтаксис | Пример |
---|---|
substring(текст, начальная-позиция, длина) |
substring("user_id@email.com", 1, 7) |
Извлекает часть текста с заданной начальной позиции на указанную длину (количество символов). | "user_id" |
Параметры¶
В примере выше:
- первый символ в вашей строке находится в позиции 1;
- длина вашей подстроки передана и всегда должна быть положительным числом.
Получение подстроки слева направо¶
ID миссии | Агент |
---|---|
19951113006 | 006 |
20061114007 | 007 |
19640917008 | 008 |
Агент — это настраиваемый столбец с выражением:
Получение подстроки справа налево¶
Вместо числа для указания начальной позиции вы можете использовать формулу:
где position_from_right
— это количество символов, которые вы хотите считать справа налево.
ID Миссии | Агент |
---|---|
19951113006 | 006 |
20061114007 | 007 |
19640917008 | 008 |
Здесь Агент — это настраиваемый столбец с выражением:
Допустимые типы данных¶
Тип данных | Работает с substring |
---|---|
Строка | ✅ |
Число | ❌ |
Дата Время | ❌ |
Условие | ❌ |
JSON | ❌ |
Информация о типах данных приведена в разделе обучения руководства Metabase (англ.).
Ограничения¶
substring
извлекает текст, подсчитывая фиксированное количество символов. Если вам нужно извлечь текст на основе более сложной логики, попробуйте regexextract
.
А если вам нужно только убрать лишние пробелы вокруг текста, вы можете использовать trim, ltrim или выражения rtrim.
Связанные функции¶
В этом разделе рассматриваются функции и формулы, которые работают так же, как выражение substring
Glarus BI.
Другие инструменты
regexextract¶
Используйте regexextract, если вам нужно извлечь текст на основе более сложных и детальных правил. Например, вы можете получить идентификатор агента с помощью шаблона регулярного выражения, который находит последнее вхождение «00» (и всё после него):
результат будет тот же, что и в более простом и менее гибком решении с substring:
SQL¶
Когда вы создаёте запрос с помощью конструктора запросов, Glarus BI преобразует ваши графические настройки (фильтры, сводки и т.д.) в запрос и запускает этот запрос в вашей базе данных, чтобы результат.
Если примеры данных хранятся в базе данных PostgreSQL:
эквивалентно выражению в Glarus BI с использованием substring
:
Таблицы¶
Если примеры данных находятся в электронной таблице, где «ID миссии» находится в столбце A,
эквивалентно выражению в Glarus BI с использованием substring
:
Python¶
Предполагая, что образец данных находится в структуре данных df
:
эквивалентно выражению в Glarus BI с использованием substring
: