sql >> Base de Datos >  >> RDS >> PostgreSQL

Las reglas de paréntesis de PostgreSQL, ¿hay una guía resumida?

"¿Existe una guía resumida?" , bueno... La respuesta es no , entonces:¡manos a la obra! Esta respuesta es una Wiki, escribamos.

Guía resumida

Vamos,

  • F () una función habitual. (ej. ROUND )
  • L () un operador similar a una función (por ejemplo, ANY )
  • f una función similar a un operador (por ejemplo, current_date )
  • Operación un operador
  • Op1 , Op2 son operadores distintos
  • Valores o expresiones A, B, C
  • S una lista de expresiones, como "(A,B,C)"

Las reglas, usando estos elementos, están en la forma

  • regla :notas.

Expresiones matemáticas "puras"

Cuando Operar , Op1 , Op2 son operadores matemáticos (ej. + , - . * ), y F () es una función matemática (ej. ROUND() ).

Reglas para expresiones escalares y "puro expresiones de matriz":

  • Una Operación B =(A Op B) :los paréntesis son opcionales.
  • A Op1 B Op2 C :necesita verificar precedencia .
  • (A Op1 B) Op2 C :hacer cumplir "primero (A Op1 B)".
  • A Op1 (B Op2 C) :hacer cumplir "primero (B Op2 C)".
  • F (A) =(F (A)) =F ((A)) =(F ((A))) :los paréntesis son opcionales.
  • S =(S) :los paréntesis externos son opcionales.
  • f =(f ) :los paréntesis son opcionales.

Expresiones con operadores similares a funciones

Reglas para operadores como ALL , ANY , ROW , SOME , etc.

  • L (A) =L ((A)) :los paréntesis son opcionales en el argumento.
  • (L (A)) :ERROR DE SINTAXIS.

...Más reglas? Ayuda con la edición aquí.