Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime 12.2 LTS i nowsze
tylko Unity Catalog
Określa funkcję, która jest stosowana jako filtr za każdym razem, gdy wiersze są pobierane z relacji.
Filtry wierszy można dodawać, gdy:
- Utwórz tabelę przy użyciu CREATE TABLE.
- Zmień tabelę przy użyciu ALTER TABLE.
- Utwórz zmaterializowany widok przy użyciu polecenia CREATE MATERIALIZED VIEW.
- Zmień zmaterializowany widok przy użyciu polecenia ALTER MATERIALIZED VIEW.
- Utwórz tabelę przesyłania strumieniowego przy użyciu CREATE STREAMING TABLE.
- Zmień tabelę strumieniowania przy użyciu polecenia ALTER STREAMING TABLE.
Ważne
Filtr wierszy jest stosowany zaraz po pobraniu wiersza ze źródła danych.
Aby uzyskać więcej informacji na temat używania filtrów wierszy, zobacz Filtry wierszy i maski kolumn.
Składnia
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parametry
-
Skalarna funkcja zdefiniowana przez użytkownika SQL.
Zwracany typ funkcji musi mieć wartość
BOOLEAN. Jeśli funkcja zwracaFALSElubNULL, wiersz jest odfiltrowywany. -
Określa kolumny relacji podmiotu do przekazania do
func_name. Każdycolumn_namemusi być rzutowalny do odpowiedniego parametrufunc_name. Należy podać tyle kolumn, ile wymaga sygnatura funkcji. Należy pamiętać, że ta funkcja obsługuje przekazywanie zerowych kolumn wejściowych, w takim przypadku funkcja zdefiniowana przez użytkownika SQL musi akceptować parametry zerowe i zwracać wynik logiczny niezależnie od wartości wierszy wejściowych. constant_literal
Określa stały parametr z typem pasującym do parametru funkcji. Obsługiwane są następujące typy:
STRING, numeryczne (INTEGER,FLOAT,DOUBLE, ...DECIMAL),BOOLEAN,INTERVAL,NULL.
Przykłady
Więcej przykładów można znaleźć w filtrach wierszy i maskach kolumn.
-- 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