ROW FILTER
子句
適用於:Databricks SQL Databricks Runtime 12.2 LTS 和更新版本僅限 Unity 目錄
指定每當從數據表擷取數據列時,套用為篩選的函式。
您可以在下列情況下新增資料列篩選:
- 使用 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
、numeric (INTEGER
、DOUBLE
FLOAT,
、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