Partager via


Clause ROW FILTER

S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 12.2 LTS et versions ultérieures coche marquée oui 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 :

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

  • func_name

    Un UDF SQL scalaire.

    Le type de retour de la fonction doit être BOOLEAN. Si la fonction renvoie FALSE ou NULL si la ligne est filtrée.

  • column_name

    Spécifie les colonnes de la table sujet à transmettre func_name. Chacun column_name doit pouvoir être converti en paramètre correspondant de func_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