Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cláusula
Aplica-se a:
SQL do Databricks
LTS do Databricks Runtime 12.2 e superior com
somente Catálogo do Unity
Especifica uma função que é aplicada como um filtro sempre que as linhas são buscadas da relação.
Você pode adicionar filtros de linha quando:
- Criar uma tabela usando CREATE TABLE.
- Alterar uma tabela usando ALTER TABLE.
- Criar uma exibição materializada usando CREATE MATERIALIZED VIEW.
- Alterar uma exibição materializada usando ALTER MATERIALIZED VIEW.
- Cria uma tabela de transmissão usando CREATE STREAMING TABLE.
- Altere uma tabela de streaming usando ALTER STREAMING TABLE.
Importante
O filtro de linha é aplicado assim que a linha é buscada da fonte de dados.
Para obter mais informações sobre como usar filtros de linha, consulte Filtros de linha e máscaras de coluna.
Sintaxe
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parâmetros
-
Uma UDF do SQL escalar.
O tipo de retorno da função deve ser
BOOLEAN. Se a função retornarFALSEouNULL, a linha foi filtrada. -
Especifica colunas da relação de assunto a serem passadas para
func_name. Cadacolumn_nameum deve ser conversível no parâmetro correspondente defunc_name. Você precisa fornecer quantas colunas forem necessárias pela assinatura da função. Observe que esse recurso dá suporte à passagem de zero colunas de entrada; nesse caso, a UDF do SQL deve aceitar zero parâmetros e retornar um resultado booliano independente de qualquer um dos valores das linhas de entrada. constant_literal
Especifica um parâmetro constante com o tipo que corresponde a um parâmetro de função. Há suporte para os seguintes tipos:
STRING, numérico (INTEGER,FLOAT,DOUBLE,DECIMAL…),BOOLEAN,INTERVAL,NULL.
Exemplos
Você pode encontrar mais exemplos em filtros de linha e máscaras de coluna.
-- 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