Condividi tramite


Clausola ROW FILTER

Si applica a:contrassegnato con un segno di spunta SQL di Databricks contrassegnato con un segno di spunta Databricks Runtime 12.2 LTS e versioni successive contrassegnato con un segno di spunta solo Catalogo Unity

Specifica una funzione applicata come filtro ogni volta che vengono recuperate righe dalla tabella.

È possibile aggiungere filtri di riga quando:

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 delle tabelle sensibili usando filtri di riga e maschere di colonna.

Sintassi

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

Parametri

  • func_name

    Funzione definita dall'utente scalare di SQL.

    Il tipo restituito della funzione deve essere BOOLEAN. Se la funzione restituisce FALSE o NULL la riga viene filtrata.

  • column_name

    Specifica le colonne della tabella oggetto da passare a func_name. Ogni column_name deve essere assegnabile al parametro corrispondente di func_name. È necessario specificare il numero di colonne richieste dalla firma della funzione. Si noti che questa funzionalità supporta il passaggio di nessuna colonna di input, nel qual caso la funzione definita dall'utente SQL deve accettare nessun parametro e restituire un risultato booleano indipendentemente da qualsiasi valore 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 delle tabelle sensibili usando filtri di riga e maschere di colonna.

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