Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
Databricks SQL
Databricks Runtime 12.2 LTS a vyšší,
Unity Catalog.
Určuje funkci, která se použije jako filtr při každém načtení řádků z relace.
Filtry řádků můžete přidat, když:
- Vytvořte tabulku pomocí CREATE TABLE.
- Změna tabulky pomocí ALTER TABLE.
- Vytvoření materializovaného zobrazení pomocí CREATE MATERIALIZED VIEW.
- Změna materializovaného zobrazení pomocí ALTER MATERIALIZED VIEW.
- Vytvořte streamovací tabulku pomocí CREATE STREAMING TABLE.
- Upravte streamovací tabulku pomocí ALTER STREAMING 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 Filtry řádků a masky sloupců.
Vyžadovaná oprávnění
Pokud chcete přiřadit funkci, která přidá do tabulky filtr řádků, musíte mít EXECUTE oprávnění k funkci, USE SCHEMA schématu a USE CATALOG nadřazeného katalogu.
Pokud přidáváte filtr řádků při vytváření nové tabulky, musíte mít CREATE TABLE oprávnění ke schématu.
Pokud přidáváte filtr řádků do existující tabulky, musíte být vlastníkem tabulky nebo mít MANAGE oprávnění k tabulce.
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íFALSEneboNULLse řádek vyfiltruje. -
Určuje sloupce předmětné relace, které se mají předat do
func_name. Každýcolumn_namemusí být přetypován na odpovídající parametrfunc_name. Musíte zadat tolik sloupců, kolik vyžaduje podpis funkce. 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 hodnotách vstupních řádků.Důležité
Pokud datový typ sloupce přesně neodpovídá odpovídajícímu typu parametru funkce, hodnota sloupce se implicitně přetypuje. Když ANSI_MODE je zakázáno, hodnoty, které nelze přetypovat, jsou bezobslužně převedeny na , což může vést k
NULLneočekávaným výsledkům filtru. Typy parametrů definované uživatelem musí odpovídat datovým typům sloupců, které jim byly předány. Podívejte se na chování neshody datových typů. 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 filtrech řádků a maskách sloupců.
-- 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