Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Clausola
Si applica a:
SQL di Databricks
Databricks Runtime 12.2 LTS e versioni successive
solo Catalogo Unity
Specifica una funzione applicata come filtro ogni volta che le righe vengono recuperate dalla relazione.
È possibile aggiungere filtri di riga quando:
- Creare una tabella usando CREATE TABLE.
- Modificare una tabella usando ALTER TABLE.
- Creare una vista materializzata usando CREATE MATERIALIZED VIEW.
- Modificare una vista materializzata usando ALTER MATERIALIZED VIEW.
- Creare una tabella di streaming usando CREATE STREAMING TABLE.
- Modificare una tabella di streaming usando ALTER STREAMING 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 Filtri di riga e maschere di colonna.
Sintassi
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parametri
-
Funzione definita dall'utente scalare di SQL.
Il tipo restituito della funzione deve essere
BOOLEAN. Se la funzione restituisceFALSEoNULLla riga viene filtrata. -
Specifica le colonne della relazione oggetto da passare a
func_name. Ognicolumn_namedeve essere assegnabile al parametro corrispondente difunc_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.Importante
Se il tipo di dati di una colonna non corrisponde esattamente al tipo di parametro della funzione corrispondente, viene eseguito il cast implicito del valore della colonna. Con ANSI_MODE disabilitato, i valori che non è possibile eseguire il cast vengono convertiti automaticamente in
NULL, che possono produrre risultati di filtro imprevisti. I tipi di parametro UDF devono corrispondere ai tipi di dati delle colonne passate. Vedere Comportamento di mancata corrispondenza del tipo di dati. 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 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