分享方式:


ROW FILTER 子句

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

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

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

重要

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

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

語法

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、numeric (INTEGERDOUBLEFLOAT,DECIMAL ...)、BOOLEAN、、、 INTERVALNULL

範例

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

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