Предложение ROW FILTER

Применимо к:флажок Databricks SQL флажок Databricks Runtime 12.2 LTS и более поздних флажок версий каталога Unity

Указывает функцию, которая применяется в качестве фильтра всякий раз, когда строки извлекаются из таблицы.

При добавлении фильтров строк можно:

  • Создайте таблицу с помощью CREATE TABLE.
  • Изменение таблицы с помощью ALTER TABLE.

Внимание

Фильтр строк применяется, как только строка извлекается из источника данных.

Дополнительные сведения об использовании фильтров строк см. в разделе "Фильтрация конфиденциальных данных таблицы" с помощью фильтров строк и маски столбцов.

Синтаксис

ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]

Параметры

  • func_name

    Скалярный UDF SQL.

    Возвращаемый тип функции должен быть BOOLEAN. Если функция возвращается FALSE или NULL строка отфильтровывается.

  • column_name

    Указывает столбцы таблицы субъекта для передачи func_nameв . Каждое из них column_name должно быть приведение к соответствующему параметру func_name. Необходимо указать столько столбцов, сколько требуется сигнатурой функции. Обратите внимание, что эта функция поддерживает передачу нулевых входных столбцов, в этом случае UDF SQL должен принимать нулевые параметры и возвращать логический результат независимо от любых значений входных строк.

  • constant_literal

    Указывает постоянный параметр с типом, соответствующим параметру функции. Поддерживаются следующие типы: STRINGчисловой (INTEGER, FLOAT, DECIMAL DOUBLE...), BOOLEAN, . NULLINTERVAL

Примеры

Дополнительные примеры см. в разделе "Фильтрация конфиденциальных данных таблицы" с помощью фильтров строк и маски столбцов.

-- 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