Как выбрать все элементы, где LEN> 0 - PullRequest
0 голосов
/ 04 октября 2018

Я новичок в Google BigQuery и обнаружил, что SQL действительно сильно отличается от обычного SQL.Я пытаюсь выбрать все элементы из таблицы, в которой есть данные, в поле с именем 'ticket_fields'.Я не хочу нули.Я попробовал следующее:

WHERE COLUMN <> '' 

WHERE LEN(COLUMN) > 0

WHERE NULLIF(LTRIM(RTRIM(COLUMN)), '') IS NOT NULL

Ничего из этого не сработало.Как выбрать все записи, в которых есть ненулевые значения, из одного определенного поля?

1 Ответ

0 голосов
/ 04 октября 2018

В некоторых системах пустая строка и NULL обрабатываются одинаково (например, Oracle).В BigQuery это разные значения, поэтому:

-- Returns TRUE
SELECT CAST(NULL AS STRING) IS NULL

-- Returns NULL
SELECT LENGTH(CAST(NULL AS STRING)) > 0

-- Returns TRUE
SELECT CAST(NULL AS STRING) IS NULL

-- Returns FALSE
SELECT '' IS NULL

-- Returns FALSE
SELECT LENGTH('') > 0

-- Returns TRUE
SELECT '' IS NOT NULL

Если вы хотите отфильтровать строки с столбцом NULL, используйте IS NOT NULL:

SELECT * FROM dataset.table WHERE column IS NOT NULL

Если выЕсли вы хотите отфильтровать строки с пустым столбцом или NULL, вы можете просто проверить, что длина положительна:

SELECT * FROM dataset.table WHERE LENGTH(column) > 0

Это потому, что LENGTH(column) возвращает NULL, еслиcolumn имеет значение null, поэтому предложение WHERE исключает строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...