ROW FILTER 子句

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 12.2 LTS 及更高版本 勾选“是” 仅 Unity Catalog

指定一个函数,每当从表中提取行时,该函数将作为筛选器应用。

可以在以下情况中添加行筛选器:

重要

从数据源提取行后,将立即应用行筛选器。

若要详细了解如何使用行筛选器,请参阅使用行筛选器和列掩码筛选敏感的表数据

语法

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

参数

  • func_name

    标量 SQL UDF

    函数的返回类型必须为 BOOLEAN。 如果函数返回 FALSENULL,行会被筛选掉。

  • column_name

    指定要传递给 func_name 的主题表列。 每个 column_name 必须可强制转换为相应的 func_name。 必须提供函数签名所需的任意数量的列。 请注意,此功能支持传递零输入列,在这种情况下,SQL UDF 必须接受零参数,并返回一个与输入行的任何值无关的布尔结果。

  • constant_literal

    指定类型与函数参数匹配的常量参数。 支持以下类型:STRING、数字(INTEGERFLOAT,DOUBLEDECIMAL ...)BOOLEANINTERVALNULL

示例

你可以在使用行筛选器和列掩码筛选敏感表数据中找到更多示例。

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