Перейти к содержанию

substring

substring извлекает часть текста. Эта функция полезна для очистки текста (или любого значения со строковым типом данных (документация Metabase, англ.)) имеет постоянный формат.

Для примера substring должна хорошо работать со строками, такими как номера SKU, коды ISO и стандартизированные адреса электронной почты.

Синтаксис Пример
substring(text, position, length) substring("user_id@email.com", 1, 7)
Извлекает часть текста с заданной начальной точкой (положением) и длиной (количеством символов). "user_id"

Параметры

  • Первый символ в вашей строке находится в позиции 1.
  • Длина вашей подстроки всегда должна быть положительным числом.

Получение подстроки слева

ID Миссии Агент
19951113006 006
20061114007 007
19640917008 008

Агент — это настраиваемый столбец с выражением:

substring([Mission ID], 9, 3)

Получение подстроки справа

Вместо того, чтобы использовать число для позиции, вы будете использовать формулу

1 + length([column]) - position_from_right

где position_from_right — это количество символов, которые вы хотите считать справа налево.

ID Миссии Агент
19951113006 006
20061114007 007
19640917008 008

Здесь Агент — это настраиваемый столбец с выражением:

substring([Mission ID], (1 + length([Mission ID]) - 3), 3)

Допустимые типы данных

Тип данных Работает с substring
Строка
Число
Дата Время
Условие
JSON

Информация о типах данных приведена в разделе обучения руководства Metabase (англ.).

Ограничения

substring извлекает текст, подсчитывая фиксированное количество символов. Если вам нужно извлечь текст на основе более сложной логики, попробуйте regexextract.

А если вам нужно только убрать лишние пробелы вокруг текста, вы можете использовать Трим, ltrim или выражения rtrim.

Связанные функции

В этом разделе рассматриваются функции и формулы, которые работают так же, как выражение substring GlarusBI, с примечаниями о том, как выбрать лучший вариант для вашего случая использования.

Выражения Glarus BI

Другие инструменты

regexextract

Используйте regexextract, если вам нужно извлечь текст на основе более конкретных правил. Например, вы можете получить идентификатор агента с шаблоном регулярного выражения, который находит последнее вхождение «00» (и все после него):

regexextract([Mission ID], ".+(00.+)$")

should return the same result as

substring([Mission ID], 9, 3)

SQL

Когда вы задаёте запрос с помощью редактора блокнота, GlarusBI преобразует ваши графические настройки запроса (фильтры, сводки и т.д.) в запрос и запускает этот запрос. против вашей базы данных, чтобы получить ваши результаты.

Если наши примеры данных хранятся в базе данных PostgreSQL:

SELECT
    mission_id,
    SUBSTRING(mission_id, 9, 3) AS agent
FROM
    this_message_will_self_destruct;

равно выражению GlarusBI substring:

substring([Mission ID], 9, 3)

Таблицы

Если наши примеры данных находятся в электронной таблице, где «ID миссии» находится в столбце A,

=mid(A2,9,3)

равно выражению GlarusBI substring:

substring([Mission ID], 9, 3)

Python

Предполагая, что образец данных находится в столбце фрейма данных с именем df,

df['Agent'] = df['Mission ID'].str.slice(8, 11)

равно выражению GlarusBI substring:

substring([Mission ID], 9, 3)

Дополнительная информация