표현식

<expression>

<term> [ { + | - | '||' } term ]...

<term>

<factor> [ { * | / } <factor> ]

<factor>

[ + | - ] <primary>

<primary>

<value specification>
| <path expression>
| <aggregate function>
| <set expression>
| <subquery>
| <insert statement>
| ( <expression> )
| <arithmetic function>
| <character function>
| <scalar function>
| <class function>
| <cast function>
| <extract function>
| <instance number function>
| <orderby number function>

<path expression>

<path element> [ . <path element> ]...
| CLASS <class name> . <path element> [ . <path element> ]...

<path element>

<attribute name>
| <attribute name> <identifier>
| <method call>

<aggregate function>

COUNT(*)
| COUNT ( [ <qualifier> ] <path expression> )
| { AVG | MAX | MIN| SUM | STDDEV | VARIANCE } ( { DISTINCT | UNIQUE } <path expression> )
| { AVG | MAX | MIN | SUM | STDDEV | VARIANCE } ( [ ALL ] <expression> )
| GROUPBY_NUM()

<set expression>

[ <set specifier> ] <subquery>
| [ <set specifier> ] '{' [ <expression comma list> ] '}'

<set specifier>

SET
| MULTISET
| { SEQUENCE | LIST }

<arithmetic function>

MOD ( <expression> , <expression> )

<character function>

POSITION ( <expression> IN <expression> )
| SUBSTRING (<expression> FROM <expression> [ FOR <expression> ] )
| OCTET_LENGTH ( <expression> )
| BIT_LENGTH ( <expression> )
| CHAR_LENGTH ( <expression> )
| LOWER ( <expression> )
| UPPER ( <expression> )
| TRANSLATE ( <expression> , <expression> , <expression> )
| REPLACE ( <expression> , <expression> [ , <expression>] )
| UPPER ( <expression> , <expression> [ , <expression>] )
| RPAD ( <expression> , <expression> [ , <expression>] )
| LTRIM ( <expression> [ , <expression>] )
| RTRIM ( <expression> [ , <expression>] )
| TRIM ( [ [ LEADING | TRAILING | BOTH ] [ <expression> ] FROM ] <expression> )

<scalar function>

ADD_MONTHS ( <expression> , <expression> )
| LAST_DAY ( <expression> )
| MONTHS_BETWEEN ( <expression> , <expression> )
| SYS_DATE
| SYS_TIME
| SYS_TIMESTAMP
| TO_CHAR ( <expression> [ , <expression> [, {'en_US' | 'ko_KR'}] ] )
| TO_DATE ( <expression> [ , <expression> [, {'en_US' | 'ko_KR'}] ] )
| TO_TIME ( <expression> [ , <expression> [, {'en_US' | 'ko_KR'}] ] )
| TO_TIMESTAMP ( <expression> [ , <expression> [, {'en_US' | 'ko_KR'}] ] )
| TO_NUMBER ( <expression> [ , <expression> ] )

<class function>

CLASS ( <class name> )

<cast function>

CAST ( <expression> AS <data type> )

<case expression>

CAST <expression> <simple when clause> [ <case else clause> ] END
| CASE <searched when clause> [ <case else clause> ] END
| NULLIF ( <expression> , <expression> )
| COALESCE ( <expression comma list> )

<simple when clause>

WHEN <expression> THEN <result>

<searched when clause>

WHEN <search condition> THEN <result>

<case else clause>

ELSE <result>

<result>

<expression>
| NULL

<extract function>

EXTRACT ( <extract field> FROM <expression> )

<extract field>

YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND

<instance number function>

ROWNUM
| INST_NUM()

<orderby number function>

ORDERBY_NUM()