ROW FILTER 子句

適用於:檢查標示為是Databricks SQL 檢查標示為是 Databricks Runtime 12.2 LTS 和更新版本檢查標示為是僅限 Unity 目錄

重要

這項功能處於公開預覽狀態

指定每當從數據表擷取數據列時,套用為篩選的函式。

您可以在下列情況下新增資料列篩選:

重要

一旦從數據源擷取數據列,就會套用數據列篩選。

如需如何使用數據列篩選的詳細資訊,請參閱 使用數據列篩選和數據行遮罩篩選敏感數據。

語法

ROW FILTER func_name ON ( [ column_name [, ...] ] ) } [...]

參數

  • func_name

    純量 SQL UDF

    函式的傳回型別必須是 BOOLEAN。 如果函式傳 FALSE 回,或 NULL 已篩選出數據列。

  • column_name

    指定要傳遞至 func_name之主旨數據表的數據行。 每個 column_name 都必須可轉換成 的 func_name對應參數。 您必須提供函式簽章所需的數據行數目。 請注意,這項功能支援傳遞零個輸入數據行,在此情況下,SQL UDF 必須接受零個參數,並傳回與輸入數據列任何值無關的布爾結果。

範例

您可以使用資料列篩選和數據行遮罩,在篩選敏感數據表中找到更多範例。

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