/  Yamcs Server Manual  /  SQL Language  /  Expressions

ExpressionsΒΆ

simpleExpression         ::= additiveExpression ( bitwiseOp additiveExpression )*
additiveExpression       ::= multiplicativeExpression ( addOp multiplicativeExpression )*
multiplicativeExpression ::= exponentExpression ( multOp multiplicativeExpression )*
exponentExpression       ::= unaryExpression [ "**" unaryExpression ]
unaryExpression          ::= [ "+" | "-" ] primaryExpression
primaryExpression        ::= integer
                             | float
                             | string
                             | "?"
                             | "(" simpleExpression ")"
                             | "ARRAY" "[" expressionList "]"
                             | functionCall
                             | objectName
expression               ::= andExpression ( "OR" andExpression )*
andExpression            ::= unaryLogicalExpression
                             | "(" expression ")" ( "AND" (
                             unaryLogicalExpression
                             | "(" expression ")"
                             ) )*
unaryLogicalExpression   ::= [ "NOT" ] relationalExpression
relationalExpression     ::= simpleExpression
                             [
                             relOp simpleExpression
                             | inClause
                             | betweenClause
                             | likeClause
                             | isNullClause
                             ]
expressionList           ::= expression ( "," expression )*
inClause                 ::= [ "NOT" ] "IN" "(" expressionList ")"
betweenClause            ::= [ "NOT" ] "BETWEEN" simpleExpression "AND" simpleExpression
likeClause               ::= [ "NOT" ] "LIKE" ( STRING | "?" )
isNullClause             ::= "IS" [ "NOT" ] "NULL"
functionCall             ::= objectName "(" [ expressionList | "*" ] ")"
selectExpression      ::= "SELECT" selectList
                          "FROM" tupleSourceExpression
                          [ "[" windowSpecification "]" ]
                          [ "WHERE" expression ]
                          [ "ORDER" [ "ASC" | "DESC" ] ]
                          [ "LIMIT" [ offset "," ] rowCount ]
mergeExpression       ::= "MERGE" tupleSourceExpression ( "," tupleSourceExpression )*
                          "USING" columnName
                          [ "ORDER" [ "ASC" | "DESC" ] ]
                          [ "LIMIT" [ offset "," ] rowCount ]
selectList            ::= selectItem ( "," selectItem )*
selectItem            ::= "*"
                          | simpleExpression [ [ "AS" ] columnName ]
tupleSourceExpression ::= objectName [ "HISTOGRAM" "(" columnName [ "," mergeTime ] ")" ]
                          | "(" streamExpression ")"
windowSpecification   ::= "SIZE" integer "ADVANCE" integer windowMode
windowMode            ::= "TIME" | "TUPLES" | "ON" columnName
offset                ::= integer
rowCount              ::= integer
mergeTime             ::= integer