| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- SQL Language Extension: CASE
- Function:
- Allow the result of a column to be determined by a the results of a
- case expression.
- Author:
- Arno Brinkman <[email protected]>
- Format:
- <case expression> ::=
- <case abbreviation>
- | <case specification>
- <case abbreviation> ::=
- NULLIF <left paren> <value expression> <comma> <value expression> <right paren>
- | COALESCE <left paren> <value expression> { <comma> <value expression> }... <right paren>
- <case specification> ::=
- <simple case>
- | <searched case>
- <simple case> ::=
- CASE <value expression>
- <simple when clause>...
- [ <else clause> ]
- END
- <searched case> ::=
- CASE
- <searched when clause>...
- [ <else clause> ]
- END
- <simple when clause> ::= WHEN <when operand> THEN <result>
- <searched when clause> ::= WHEN <search condition> THEN <result>
- <when operand> ::= <value expression>
- <else clause> ::= ELSE <result>
- <result> ::=
- <result expression>
- | NULL
- <result expression> ::= <value expression>
- Notes:
- See also README.data_type_results_of_aggregations.txt
- Examples:
- A) (simple)
- SELECT
- o.ID,
- o.Description,
- CASE o.Status
- WHEN 1 THEN 'confirmed'
- WHEN 2 THEN 'in production'
- WHEN 3 THEN 'ready'
- WHEN 4 THEN 'shipped'
- ELSE 'unknown status ''' || o.Status || ''''
- END
- FROM
- Orders o
- B) (searched)
- SELECT
- o.ID,
- o.Description,
- CASE
- WHEN (o.Status IS NULL) THEN 'new'
- WHEN (o.Status = 1) THEN 'confirmed'
- WHEN (o.Status = 3) THEN 'in production'
- WHEN (o.Status = 4) THEN 'ready'
- WHEN (o.Status = 5) THEN 'shipped'
- ELSE 'unknown status ''' || o.Status || ''''
- END
- FROM
- Orders o
|