Поделиться через


Предложение 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,DOUBLEDECIMAL...), BOOLEAN, . INTERVALNULL

Примеры

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

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