ROW FILTER
子句
适用于: Databricks SQL Databricks Runtime 12.2 LTS 及更高版本 仅 Unity Catalog
指定一个函数,每当从表中提取行时,该函数将作为筛选器应用。
可以在以下情况中添加行筛选器:
- 使用 CREATE TABLE 创建表。
- 使用 ALTER TABLE 更改表。
重要
从数据源提取行后,将立即应用行筛选器。
若要详细了解如何使用行筛选器,请参阅使用行筛选器和列掩码筛选敏感的表数据。
语法
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
参数
-
标量 SQL UDF。
函数的返回类型必须为
BOOLEAN
。 如果函数返回FALSE
或NULL
,行会被筛选掉。 -
指定要传递给
func_name
的主题表列。 每个column_name
必须可强制转换为相应的func_name
。 必须提供函数签名所需的任意数量的列。 请注意,此功能支持传递零输入列,在这种情况下,SQL UDF 必须接受零参数,并返回一个与输入行的任何值无关的布尔结果。 constant_literal
指定类型与函数参数匹配的常量参数。 支持以下类型:
STRING
、数字(INTEGER
、FLOAT,
、DOUBLE
、DECIMAL
...)BOOLEAN
、INTERVAL
、NULL
。
示例
你可以在使用行筛选器和列掩码筛选敏感表数据中找到更多示例。
-- 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