ROW FILTER
-Klausel
Gilt für: Databricks SQL Databricks Runtime 12.2 LTS und höher Nur Unity Catalog
Gibt eine Funktion an, die als Filter angewandt wird, wenn Zeilen aus der Tabelle abgerufen werden.
Sie können Zeilenfilter hinzufügen, indem Sie:
- Eine Tabelle mit CREATE TABLE erstellen.
- Ändern Sie eine Tabelle mit ALTER TABLE.
Wichtig
Der Zeilenfilter wird angewendet, sobald die Zeile aus der Datenquelle abgerufen wird.
Weitere Informationen zur Verwendung von Zeilenfiltern finden Sie unter Filtern vertraulicher Tabellendaten mit Zeilenfiltern und Spaltenmasken.
Syntax
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parameter
-
Eine skalare SQL-UDF.
Der Rückgabetyp der Funktion muss
BOOLEAN
sein. Wenn die FunktionFALSE
oderNULL
zurückgibt, wird die Zeile herausgefiltert wird. -
Gibt Spalten der Thementabelle an, die an
func_name
übergeben werden sollen. Jedecolumn_name
muss in den entsprechenden Parameter vonfunc_name
konvertiert werden können. Sie müssen so viele Spalten liefern, wie die von der Signatur der Funktion erfordert werden. Beachten Sie, dass dieses Feature das Übergeben von Nulleingabespalten unterstützt. In diesem Fall muss die SQL-UDF null Parameter akzeptieren und ein boolesches Ergebnis unabhängig von den Werten der Eingabezeilen zurückgeben. constant_literal
Gibt einen Konstantenparameter an, dessen Typ einem Funktionsparameter entspricht. Die folgenden Typen werden unterstützt:
STRING
, numerische Typen (INTEGER
,FLOAT,
DOUBLE
,DECIMAL
, …),BOOLEAN
,INTERVAL
,NULL
.
Beispiele
Weitere Beispiele finden Sie unter Filtern vertraulicher Tabellendaten mit Zeilenfiltern und Spaltenmasken.
-- 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