ROW FILTER
clause
適用対象: 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