Clause ROW FILTER
S’applique à : Databricks SQL Databricks Runtime 12.2 LTS et versions ultérieures Unity Catalog uniquement
Spécifie une fonction qui est appliquée comme filtre chaque fois que des lignes sont extraites de la table.
Vous pouvez ajouter des filtres de lignes lorsque vous :
- Créez une table en utilisant CREATE TABLE.
- Modifiez une table à l’aide de ALTER TABLE.
Important
Le filtre de ligne est appliqué dès que la ligne est extraite de la source de données.
Pour plus d’informations sur l’utilisation des filtres de lignes, consultez Filtrer les données de table sensibles à l’aide de filtres de lignes et de masques de colonne.
Syntaxe
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Paramètres
-
Un UDF SQL scalaire.
Le type de retour de la fonction doit être
BOOLEAN
. Si la fonction renvoieFALSE
ouNULL
si la ligne est filtrée. -
Spécifie les colonnes de la table sujet à transmettre
func_name
. Chacuncolumn_name
doit pouvoir être converti en paramètre correspondant defunc_name
. Vous devez fournir autant de colonnes que l'exige la signature de la fonction. Notez que cette fonctionnalité prend en charge le passage de colonnes d'entrée nulles, auquel cas la fonction SQL UDF doit accepter zéro paramètre et renvoyer un résultat booléen indépendant de toute valeur des lignes d'entrée. constant_literal
Spécifie un paramètre constant avec le type correspondant à un paramètre de fonction. Les types suivants sont pris en charge :
STRING
, numérique (INTEGER
,FLOAT,
DOUBLE
,DECIMAL
…),BOOLEAN
,INTERVAL
,NULL
.
Exemples
Vous trouverez d’autres exemples dans Filtrer les données de table sensibles à l’aide de filtres de lignes et de masques de colonne.
-- 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