Delen via


ROW FILTER clausule

Van toepassing op:aangevinkt ja Databricks SQL aangevinkt ja Databricks Runtime 12.2 LTS en hoger aangevinkt ja Alleen Unity Catalog

Hiermee geeft u een functie op die wordt toegepast als een filter wanneer rijen worden opgehaald uit de relatie.

U kunt rijfilters toevoegen wanneer u:

Belangrijk

Het rijfilter wordt toegepast zodra de rij wordt opgehaald uit de gegevensbron.

Zie Rijfilters en kolommaskers voor meer informatie over het gebruik van rijfilters.

Syntaxis

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

Parameterwaarden

  • func_name

    Een scalaire SQL UDF.

    Het retourtype van de functie moet zijn BOOLEAN. Als de functie FALSE of NULL retourneert, wordt de rij eruit gefilterd.

  • column_name

    Hiermee geeft u de kolommen van de subject-relatie die doorgegeven moeten worden aan func_name. Elke column_name moet omgezet kunnen worden naar de bijbehorende parameter van func_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 specificeert u een constante parameter waarvan het type overeenkomt met dat van een functieparameter. De volgende typen worden ondersteund: STRING, numeriek (INTEGER, FLOAT,DOUBLE, DECIMAL ...), BOOLEAN, INTERVALNULL.

Voorbeelden

Meer voorbeelden vindt u in rijfilters en kolommaskers.

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