共用方式為


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。 如果函式傳 FALSE 回,或 NULL 已篩選出數據列。

  • 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