expr BETWEEN expr AND expr
sel-expr-list ::= sel-expr | sel-expr-list, sel-expr
sel-expr ::= expr | var-name.* | table-name.*
target-list ::= host-location | target-list, host-location
from-list ::= table-name [ var-name ] | from-list, table-name [ var-name ]
field-spec-list ::= field-spec | field-spec-list, field-spec
ord-spec-list ::= field-spec [ direction ] | ord-spec-list, field-spec [ direction ]
direction ::= ASC | DESC
boolean ::= boolean-term | boolean OR boolean-term
boolean-term ::= boolean-factor | boolean-term AND boolean-factor
boolean-factor ::= [ NOT ] boolean-primary
boolean-primary ::= predicate | ( boolean )
predicate ::= expr comparison expr | expr BETWEEN expr AND expr | expr comparison table-spec | < field-spec-list > = table-spec | < field-spec-list> [ IS ] [ NOT ] IN table-spec | IF predicate THEN predicate | SET ( field-spec-list ) comparison table-spec | SET ( field-spec-list ) comparison SET ( field-spec-list ) | table-spec comparison table-spec
table-spec ::= query-block | ( query-expr ) | literal
expr ::= arith-term | expr add-op arith-term
arith-term ::= arith-factor | arith-term mult-op arith-factor
arith-factor ::= [ add-op ] primary
primary ::= [ OLD | NEW ] field-spec | set-fn ( [ UNIQUE ] expr ) | COUNT ( * ) | constant | ( expr )
field-spec ::= field-name | table-name.field-name | var-name.field-name
comparison ::= comp-op | CONTAINS | DOES NOT CONTAIN | [ IS ] IN | [ IS ] NOT IN
comp-op ::= = | ¬= | > | >= | < | <=
add-op ::= + |-
mult-op ::= * | /
set-fn ::= AVG | MAX | MIN | SUM | COUNT| identifier
literal ::= ( lit-tuple-list ) | lit-tuple | ( entry-list ) | constant
lit-tuple-list ::= lit-tuple | lit-tuple-list, lit-tuple
lit-tuple ::= < entry-list >
entry-list ::= entry | entry-list, entry
entry ::= [ constant ]
constant ::= quoted-string | number | host-location | NULL | USER | DATE | field-name OF CURSOR cursor-name ON table-name
table-name ::= name
image-name ::= name
link-name ::= name
Содержание Назад Вперед