ROW FILTER
clausule
Van toepassing op: Alleen Databricks SQL Databricks Runtime 12.2 LTS en hoger dan Unity Catalog
Hiermee geeft u een functie op die wordt toegepast als een filter wanneer rijen worden opgehaald uit de tabel.
U kunt rijfilters toevoegen wanneer u:
- Maak een tabel met CREATE TABLE.
- Een tabel wijzigen met ALTER TABLE.
Belangrijk
Het rijfilter wordt toegepast zodra de rij wordt opgehaald uit de gegevensbron.
Syntaxis
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parameters
-
Een scalaire SQL UDF.
Het retourtype van de functie moet zijn
BOOLEAN
. Als de functie retourneertFALSE
ofNULL
de rij wordt uitgefilterd. -
Hiermee geeft u kolommen van de onderwerptabel die moeten worden doorgegeven aan
func_name
. Elkcolumn_name
moet worden castable naar de bijbehorende parameter vanfunc_name
. U moet zoveel kolommen opgeven als vereist is door de handtekening van de functie. Houd er rekening mee dat deze functie ondersteuning biedt voor het doorgeven van kolommen zonder invoer. In dat geval moet de SQL UDF nulparameters accepteren en een booleaans resultaat retourneren onafhankelijk van een van de waarden van de invoerrijen. constant_literal
Hiermee geeft u een constante parameter met het type dat overeenkomt met een functieparameter. De volgende typen worden ondersteund:
STRING
, numeriek (INTEGER
,FLOAT,
DOUBLE
,DECIMAL
...),BOOLEAN
,INTERVAL
NULL
.
Voorbeelden
Meer voorbeelden vindt u in Filter gevoelige tabelgegevens met behulp van rijfilters en kolommaskers.
-- 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