# Isempty `isempty` проверяет, является ли значение в **строковом столбце** пустой строкой (`""`). ** В GlarusBI вы должны комбинировать `isempty` с другим выражением, которое принимает логические значения. ** В таблице ниже показаны примеры логического вывода, которые будут переданы другим вашим выражениям. | Синтаксис | Пример с пустой строкой | Пример где `null` правда | | ------------------------------------------------------------------ | ---------------------------- | -------------------------- | | `isempty(value)` | `isempty("")` | `isempty(null)` | | Возвращает `true`, если значение представляет собой пустую строку, и `false` в противном случае. | `true` | `false` | ## Как GlarusBI обрабатывает пустые строки В GlarusBI столбцы со строкой [типы данных][data-types] будут отображать пустые ячейки для пустых строк _или_ значений `null` (если столбец в вашей базе данных допускает значение null). Для Примера в столбце ниже пустые ячейки могут содержать: - `""`: отзыв был отправлен и намеренно оставлен пустым, поэтому у человека не было «отзывов, которые можно было бы оставить». - `null`: отзыв не был отправлен, поэтому мысли человека «неизвестны». | Обратная связь | | ------------------ | | | | | | Мне нравится ваш стиль. | ## Замена пустых строк другим значением | Обратная связь | `case(isempty([Feedback]), "No feedback.", [Feedback])` | | ------------------ | ------------------------------------------------------- | | | | | | Нет обратной связи. | | Мне нравится ваш стиль. | Мне нравится ваш стиль. | Объедините `isempty` с выражением [`case`](./case.md), чтобы заменить пустые строки чем-то более описательным. Предположим, что пустая ячейка второй строки на самом деле является пустой строкой, поэтому `isempty` вернет `true`. Оператор `case` оценивает значение `true`, чтобы вернуть первый вывод «Нет обратной связи». В пустой ячейке первой строки нет пустой строки, но, поскольку она пуста, мы не уверены, что в ней содержится — это может быть `null` или даже смайлик, который сливается с фоном вашей таблицы. Независимо от того, какой крайний случай, `isempty` вернет `false`, а `case` вернет все, что находится в столбце Обратная связь, в качестве вывода по умолчанию. ## Допустимые типы данных | [Тип даных][data-types] | Работает с `isempty` | | ----------------------- | -------------------- | | Строка | ✅ | | Число | ❌ | |Дата Время | ❌ | | Условие | ❌ | | JSON | ❌ | ## Ограничения - В GlarusBI вы должны комбинировать `isempty` с другим выражением, которое принимает логические аргументы (например, `true` или `false`). - `isempty` принимает только одно значение за раз. Если вам нужно иметь дело с пустыми строками из нескольких столбцов, вам нужно будет использовать несколько выражений `isempty` с [выражением case](./case.md). - Если `isempty` ничего не делает с вашими пустыми ячейками, у вас могут быть значения `null`. Вместо этого попробуйте выражение [`isnull`](./isnull.md). ## Связанные функции В этом разделе рассматриваются функции и формулы, которые можно использовать взаимозаменяемо с выражением `isempty` GlarusBI, с примечаниями о том, как выбрать лучший вариант для вашего случая использования. - [SQL](#sql) - [Таблицы](#spreadsheets) - [Python](#python) Во всех приведенных ниже примерах используется таблица из [Замена пустых строк](#replacing-empty-strings-with-another-value) Пример: | Обратная связь | `case(isempty([Feedback]), "No feedback.", [Feedback])` | | ------------------ | ------------------------------------------------------- | | | | | | Нет обратной связи. | | Мне нравится ваш стиль. | Мне нравится ваш стиль. | ### SQL В большинстве случаев (если вы не используете базу данных NoSQL) вопросы, созданные в [редакторе блокнота][notebook-editor-def], преобразуются в SQL-запросы, которые выполняются в вашей базе данных или хранилище данных. ```sql CASE WHEN Feedback = "" THEN "No feedback" ELSE Feedback END ``` идентично выражению GlarusBI `isempty`: ``` case(isempty([Feedback]), "No feedback.", [Feedback]) ``` ### Таблицы Если наш образец [столбец отзывов](#replacing-empty-strings-with-another-value) находится в электронной таблице, где «Обратная связь» находится в столбце A, тогда формула ``` =IF(A2 = "", "Unknown feedback.", A2) ``` идентично выражению GlarusBI `isempty`: ``` case(isempty([Feedback]), "No feedback.", [Feedback]) ``` ### Python Предполагая, что образец [столбец обратной связи](#replaceing-empty-strings-and-other-value) находится в столбце фрейма данных с именем `df["Feedback"]`: ``` df["Custom Column"] = np.where(df["Feedback"] == "", "No feedback.", df["Feedback"]) ``` идентично выражению GlarusBI `isempty`: ``` case(isempty([Feedback]), "No feedback.", [Feedback]) ``` ## Дополнительная информация - [Документация по кастомным выражениям](../expressions.md) - [Руководство по кастомным выражениям. Документация Metabase](https://www.metabase.com/learn/questions/custom-expressions) [custom-expressions-doc]: ../expressions.md [custom-expressions-learn]: https://www.metabase.com/learn/questions/custom-expressions [data-types]: https://www.metabase.com/learn/databases/data-types-overview#examples-of-data-types [notebook-editor-def]: https://www.metabase.com/glossary/notebook_editor [numpy]: https://numpy.org/doc/ [pandas]: https://pandas.pydata.org/pandas-docs/stable/