ROW FILTER klausul

Gäller endast för: markerad ja Databricks SQL markerad ja Databricks Runtime 12.2 LTS och senare markerad ja i Unity Catalog

Anger en funktion som används som ett filter när rader hämtas från tabellen.

Du kan lägga till radfilter när du:

  • Skapa en tabell med CREATE TABLE.
  • Ändra en tabell med ALTER TABLE.

Viktigt!

Radfiltret tillämpas så snart raden hämtas från datakällan.

Mer information om hur du använder radfilter finns i Filtrera känsliga tabelldata med hjälp av radfilter och kolumnmasker.

Syntax

ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]

Parametrar

  • func_name

    En skalär SQL UDF.

    Returtypen för funktionen måste vara BOOLEAN. Om funktionen returnerar FALSE eller NULL om raden filtreras bort.

  • column_name

    Anger kolumner i ämnestabellen som ska skickas till func_name. Var och column_name en måste kunna castas till motsvarande parameter för func_name. Du måste ange så många kolumner som krävs av funktionens signatur. Observera att den här funktionen har stöd för att skicka noll indatakolumner, i vilket fall SQL UDF måste acceptera nollparametrar och returnera ett booleskt resultat oberoende av värdena för indataraderna.

  • constant_literal

    Anger en konstant parameter med den typ som matchar en funktionsparameter. Följande typer stöds: STRING, numeriska (INTEGER, , DOUBLEFLOAT, ... DECIMAL ), BOOLEAN, , INTERVAL, NULL.

Exempel

Du hittar fler exempel i Filtrera känsliga tabelldata med hjälp av radfilter och kolumnmasker.

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