Предложение ROW FILTER
Применимо к: Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий каталога Unity
Указывает функцию, которая применяется в качестве фильтра всякий раз, когда строки извлекаются из таблицы.
При добавлении фильтров строк можно:
- Создайте таблицу с помощью CREATE TABLE.
- Изменение таблицы с помощью ALTER 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,
DECIMAL
DOUBLE
...),BOOLEAN
, .NULL
INTERVAL
Примеры
Дополнительные примеры см. в разделе "Фильтрация конфиденциальных данных таблицы" с помощью фильтров строк и маски столбцов.
-- Create a table with a row filter column
> CREATE FUNCTION filter_emps(dept STRING) RETURN is_member(dept);
> CREATE TABLE employees(emp_name STRING, dept STRING) WITH ROW FILTER filter_emps ON (dept);
> INSERT INTO employees('Jones', 'Engineering'), ('Smith', 'Sales');
-- As a member of engineering
> SELECT * FROM employees;
Jones Engineering
-- As a member of sales
> SELECT * FROM employees;
Smith Sales