Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Предложение
применяется:
Databricks SQL
Databricks Runtime 12.2 LTS и выше
только для каталога Unity
Указывает функцию, которая применяется в качестве фильтра каждый раз, когда строки извлекаются из таблицы.
При добавлении фильтров строк можно:
- Создайте таблицу с помощью CREATE TABLE.
- Измените таблицу с помощью ALTER TABLE.
- Создание материализованного представления с помощью CREATE MATERIALIZED VIEW.
- Изменение материализованного представления с помощью ALTER MATERIALIZED VIEW.
- Создайте потоковую таблицу с помощью CREATE STREAMING TABLE.
- Изменение таблицы потоковой передачи с помощью ALTER STREAMING TABLE.
Внимание
Фильтр строк применяется, как только строка извлекается из источника данных.
Дополнительные сведения об использовании фильтров строк см. в статьях "Фильтры строк" и "Маски столбцов".
Синтаксис
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Параметры
-
Скалярный UDF SQL.
Возвращаемый тип функции должен быть
BOOLEAN. Если функция возвращаетсяFALSEилиNULLстрока отфильтровывается. -
Указывает столбцы отношения субъекта для передачи
func_name. Каждое из нихcolumn_nameдолжно быть приведение к соответствующему параметруfunc_name. Вы должны указать столько столбцов, сколько требует сигнатура функции. Обратите внимание, что эта функция поддерживает передачу нулевых входных столбцов, в этом случае UDF SQL должен принимать нулевые параметры и возвращать логический результат независимо от любых значений входных строк. constant_literal
Указывает постоянный параметр с типом, соответствующим параметру функции. Поддерживаются следующие типы:
STRINGчисловой (INTEGER,FLOAT,DOUBLEDECIMAL...),BOOLEAN, .INTERVALNULL
Примеры
Дополнительные примеры можно найти в фильтрах строк и масках столбцов.
-- Create a table with a row filter column
> CREATE FUNCTION filter_emps(dept STRING) RETURN is_account_group_member(dept);
> CREATE TABLE employees(emp_name STRING, dept STRING) WITH ROW FILTER filter_emps ON (dept);
> INSERT INTO employees VALUES ('Jones', 'Engineering'), ('Smith', 'Sales');
-- As a member of engineering
> SELECT * FROM employees;
Jones Engineering
-- As a member of sales
> SELECT * FROM employees;
Smith Sales