Cláusula PATTERN para MATCH_RECOGNIZE

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 19.0 and above

Importante

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

Especifica o padrão a ser correspondido em uma operação de MATCH_RECOGNIZE .

Syntax

PATTERN ( row_pattern )
row_pattern
  { { pattern_primary | pattern_operator } [ pattern_quantifier ] }

pattern_primary
  { variable
  | $
  | ^ }

pattern_operator
  { ( [ row_pattern ] )
  | PERMUTE ( row_pattern [, ...] )
  | row_pattern | row_pattern
  | row_pattern row_pattern }

pattern_quantifier
  { *
  | +
  | ?
  | { n }
  | { min , [ max ] }
  | { , max } }

Parameters

Padrão primário

  • variable

    Uma variável definida na cláusula DEFINE . Uma variável indefinida corresponde a todas as linhas.

  • $

    O fim da partição.

  • ^

    O início da partição.

    Nesta versão, ^$ suporte apenas para a posição à esquerda ou à direita do padrão de nível superior. Por exemplo, ^ A B $ há suporte, mas não há suporte para âncoras de sequência intermediária, como A ^ B âncoras por branch, como (^ A) | (B $) .

Operador de padrão

  • ( [ row_pattern ] )

    Um agrupamento que substitui a precedência.

  • PERMUTE ( row_pattern [, ...] )

    Corresponde aos padrões de linha em qualquer permutação de ordem. PERMUTE requer pelo menos dois padrões. Se você especificar menos de dois, Azure Databricks aumentará MATCH_RECOGNIZE_PERMUTE_TOO_FEW_PATTERNS. Se você especificar mais do que o máximo com suporte, Azure Databricks aumentará MATCH_RECOGNIZE_PERMUTE_TOO_MANY_PATTERNS.

  • row_pattern | row_pattern

    Corresponde a qualquer um dos padrões de linha.

  • row_pattern row_pattern

    Corresponde a uma sequência de padrões de linha.

Quantificador de padrão

Especifica com que frequência a pattern_primary correspondência deve ser:

  • *

    Zero ou mais vezes.

  • +

    Uma ou mais vezes.

  • ?

    No máximo uma vez.

  • { n }

    Exatamente n horas. n deve ser um INTEGER literal maior que 0.

  • { min , [ max ] }

    Pelo menos min vezes, e se especificado até max o momento.

  • { , max }

    Não mais do que max vezes.

Se você omitir um quantificador, o padrão será { 1 }: exatamente uma correspondência.

Condições de erro comuns