Clausola ROW FILTER
Si applica a: Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive
solo Unity Catalog
Specifica una funzione applicata come filtro ogni volta che le righe vengono recuperate dal table.
È possibile aggiungere filtri di riga quando:
- Creare un table usando CREATE TABLE.
- Modificare un table usando ALTER TABLE.
Importante
Il filtro di riga viene applicato non appena la riga viene recuperata dall'origine dati.
Per altre informazioni su come usare i filtri di riga, vedere Filtrare i dati sensibili table usando filtri di riga e maschere column.
Sintassi
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parameters
-
Funzione definita dall'utente scalare di SQL.
Il tipo restituito della funzione deve essere
BOOLEAN
. Se la funzione restituisceFALSE
oNULL
la riga viene filtrata. -
Specifica columns dell'oggetto table da passare a
func_name
. Ognicolumn_name
deve essere assegnabile al parametro corrispondente difunc_name
. Devi fornire tanti columns quanti sono richiesti dalla firma della funzione. Si noti che questa funzionalità supporta il passaggio di un input zero columns, nel qual caso la funzione SQL definita dall'utente deve accettare zero parameters e restituire un risultato booleano indipendente da qualsiasi values delle righe di input. constant_literal
Specifica un parametro costante con il tipo corrispondente a un parametro di funzione. Sono supportati i seguenti tipi:
STRING
, numerico (INTEGER
,FLOAT,
DOUBLE
,DECIMAL
...) ,BOOLEAN
,INTERVAL
,NULL
.
Esempi
Altri esempi sono disponibili in Filtrare i dati sensibili table usando filtri di riga e maschere column.
-- 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