ROW FILTER
klausul
Gäller endast för: Databricks SQL Databricks Runtime 12.2 LTS och senare 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:
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
-
En skalär SQL UDF.
Returtypen för funktionen måste vara
BOOLEAN
. Om funktionen returnerarFALSE
ellerNULL
om raden filtreras bort. -
Anger kolumner i ämnestabellen som ska skickas till
func_name
. Var ochcolumn_name
en måste kunna castas till motsvarande parameter förfunc_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
, ,DOUBLE
FLOAT,
...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