ROW FILTER
klauzule
Platí pro: Databricks SQL Databricks Runtime 12.2 LTS a vyšší pouze katalog Unity
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ž:
- Vytvořte tabulku pomocí příkazu CREATE TABLE.
- Změna tabulky pomocí funkce ALTER TABLE
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
-
Skalární funkce definované uživatelem SQL
Návratový typ funkce musí být
BOOLEAN
. Pokud funkce vrátíFALSE
neboNULL
se řádek vyfiltruje. -
Určuje sloupce tabulky předmětu, které
func_name
se mají předat . Každýcolumn_name
musí být přetypován na odpovídající parametrfunc_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 části 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('Jones', 'Engineering'), ('Smith', 'Sales');
-- As a member of engineering
> SELECT * FROM employees;
Jones Engineering
-- As a member of sales
> SELECT * FROM employees;
Smith Sales