Udostępnij za pomocą


ROW FILTER klauzula

Dotyczy:zaznaczone jako tak Databricks SQL zaznaczone jako tak Databricks Runtime 12.2 LTS i nowsze zaznaczone jako tak 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:

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

  • func_name

    Skalarna funkcja zdefiniowana przez użytkownika SQL.

    Zwracany typ funkcji musi mieć wartość BOOLEAN. Jeśli funkcja zwraca FALSE lub NULL, wiersz jest odfiltrowywany.

  • nazwa_kolumny

    Określa kolumny relacji podmiotu do przekazania do func_name. Każdy column_name musi być rzutowalny do odpowiedniego parametru func_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