Substring¶
substring
извлекает часть текста. Эта функция полезна для очистки текста (или любого значения с строковым типом данных) имеет постоянный формат.
Для примера 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 | ❌ |
Ограничения¶
substring
извлекает текст, подсчитывая фиксированное количество символов. Если вам нужно извлечь текст на основе более сложной логики, попробуйте regexextract
.
А если вам нужно только убрать лишние пробелы вокруг текста, вы можете использовать Трим, [Левый_трим](../expressions-list.md #lefttrim) или выражения Правый_трим.
Связанные функции¶
В этом разделе рассматриваются функции и формулы, которые работают так же, как выражение substring
GlarusBI, с примечаниями о том, как выбрать лучший вариант для вашего случая использования.
Другие инструменты
Вытянуть текст¶
Используйте 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)