ROW FILTER
klauzula
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowszy tylko wykaz aparatu Unity
Określa funkcję, która jest stosowana jako filtr za każdym razem, gdy wiersze są pobierane z tabeli.
Filtry wierszy można dodawać, gdy:
- Utwórz tabelę przy użyciu polecenia CREATE TABLE.
- Alter a table using ALTER TABLE (Zmienianie tabeli przy użyciu funkcji ALTER 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 Filtrowanie poufnych danych tabeli przy użyciu filtrów wierszy i masek kolumn.
Składnia
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parametry
-
Skalarna funkcja zdefiniowanej przez użytkownika SQL.
Zwracany typ funkcji musi mieć wartość
BOOLEAN
. Jeśli funkcja zwracaFALSE
wartość lubNULL
wiersz jest filtrowany. -
Określa kolumny tabeli podmiotu, które mają być przekazywane do
func_name
. Każdycolumn_name
element musi być rzutowalny do odpowiedniego parametru .func_name
Należy podać tyle kolumn, ile jest wymaganych przez podpis 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 temacie Filtrowanie poufnych danych tabeli przy użyciu filtrów wierszy i masek kolumn.
-- 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