Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 12.2 LTS und höher
Nur Unity Catalog
Gibt eine Funktion an, die als Filter angewendet wird, wenn Zeilen aus der Beziehung abgerufen werden.
Sie können Zeilenfilter hinzufügen, indem Sie:
- Erstellen Sie eine Tabelle mit CREATE TABLE.
- Ändern einer Tabelle mithilfe von ALTER TABLE.
- Erstellen einer materialisierten Ansicht mithilfe von CREATE MATERIALIZED VIEW.
- Ändern einer materialisierten Ansicht mithilfe von ALTER MATERIALIZED VIEW.
- Erstellen Sie mithilfe von CREATE STREAMING TABLE eine Streamingtabelle.
- Ändern einer Streamingtabelle mithilfe von ALTER STREAMING TABLE.
Wichtig
Der Zeilenfilter wird angewendet, sobald die Zeile aus der Datenquelle abgerufen wird.
Weitere Informationen zur Verwendung von Zeilenfiltern finden Sie unter Zeilenfilter und Spaltenmasken.
Erforderliche Berechtigungen
Um einer Tabelle eine Funktion zuzuweisen, die einer Tabelle einen Zeilenfilter hinzufügt, müssen Sie über die EXECUTE Berechtigungen für die Funktion, USE SCHEMA für das Schema und USE CATALOG für den übergeordneten Katalog verfügen.
Wenn Sie beim Erstellen einer neuen Tabelle einen Zeilenfilter hinzufügen, müssen Sie über die CREATE TABLE Berechtigungen für das Schema verfügen.
Wenn Sie einer vorhandenen Tabelle einen Zeilenfilter hinzufügen, müssen Sie der Tabellenbesitzer sein oder über die MANAGE Berechtigung für die Tabelle verfügen.
Syntax
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parameter
-
Eine skalare SQL-UDF.
Der Rückgabetyp der Funktion muss
BOOLEANsein. Wenn die FunktionFALSEoderNULLzurückgibt, wird die Zeile herausgefiltert wird. -
Gibt Spalten der Antragstellerbeziehung an, die an
func_nameübergeben werden sollen. Jedecolumn_namemuss in den entsprechenden Parameter vonfunc_namekonvertiert werden können. Sie müssen so viele Spalten liefern, wie die von der Signatur der Funktion erfordert werden. Dieses Feature unterstützt das Übergeben von Nulleingabespalten. In diesem Fall muss die SQL-UDF null Parameter akzeptieren und ein boolesches Ergebnis zurückgeben, das unabhängig von den Werten der Eingabezeilen ist.Wichtig
Wenn der Datentyp einer Spalte nicht exakt mit dem entsprechenden Funktionsparametertyp übereinstimmt, wird der Spaltenwert implizit umgerechnet. Bei ANSI_MODE deaktivierten Werten, die nicht umgewandelt werden können, werden im Hintergrund in
NULLkonvertiert, was zu unerwarteten Filterergebnissen führen kann. UDF-Parametertypen müssen mit den Datentypen der an sie übergebenen Spalten übereinstimmen. Siehe Datentypkonfliktverhalten. constant_literal
Gibt einen Konstantenparameter an, dessen Typ einem Funktionsparameter entspricht. Die folgenden Typen werden unterstützt:
STRING, numerisch (INTEGER,FLOAT,DOUBLE,DECIMAL…),BOOLEAN,INTERVAL,NULL.
Beispiele
Weitere Beispiele finden Sie in Zeilenfiltern und Spaltenmasken.
-- Create a table with a row filter column
> CREATE FUNCTION filter_emps(dept STRING) RETURN is_account_group_member(dept);
> CREATE TABLE employees(emp_name STRING, dept STRING) WITH ROW FILTER filter_emps ON (dept);
> INSERT INTO employees VALUES ('Jones', 'Engineering'), ('Smith', 'Sales');
-- As a member of engineering
> SELECT * FROM employees;
Jones Engineering
-- As a member of sales
> SELECT * FROM employees;
Smith Sales