Sdílet prostřednictvím


ROW FILTER klauzule

platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano Databricks Runtime 12.2 LTS a vyšší, zaškrtněte políčko Ano pouze Unity Catalog.

Určuje funkci, která se použije jako filtr při každém načtení řádků z tabulky.

Filtry řádků můžete přidat, když:

Důležité

Filtr řádků se použije, jakmile se řádek načte ze zdroje dat.

Další informace o tom, jak používat filtry řádků, najdete v tématu Filtrování citlivých dat tabulky pomocí filtrů řádků a masek sloupců.

Syntaxe

ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]

Parametry

  • func_name

    Skalární funkce definované uživatelem SQL

    Návratový typ funkce musí být BOOLEAN. Pokud funkce vrátí FALSE nebo NULL se řádek vyfiltruje.

  • column_name

    Určuje sloupce tabulky předmětu, které se mají předat func_name. Každý column_name musí být přetypován na odpovídající parametr func_name. Musíte zadat tolik sloupců, kolik vyžaduje podpis funkce. Všimněte si, že tato funkce podporuje předávání nulových vstupních sloupců, v takovém případě musí funkce SQL UDF přijmout nulové parametry a vrátit logický výsledek nezávislý na libovolné hodnotě vstupních řádků.

  • constant_literal

    Určuje konstantní parametr s typem, který odpovídá parametru funkce. Podporují se následující typy: STRING, číselná (INTEGER, FLOAT,DOUBLE, DECIMAL ...), BOOLEAN, INTERVAL, NULL.

Příklady

Další příklady najdete v Filtrování citlivých dat tabulky pomocí filtrů řádků a masek sloupců.

-- 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 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