The following conditions or expressions are considered illegal in a CASE expression:
| Condition or Expression | Example |
|---|---|
| A condition after the keyword CASE is supplied. | SELECT CASE a=1 WHEN 1 THEN 1 ELSE 0 END FROM t; |
| A non valid WHEN expression is supplied in a valued CASE expression. | SELECT CASE a WHEN a=1 THEN 1 ELSE 0 END FROM t; |
| A non valid WHEN condition is supplied in a searched CASE expression. | SELECT CASE WHEN a THEN 1 ELSE 0 END FROM t; SELECT CASE WHEN NULL THEN 'NULL' END FROM table_1; |
| A non-scalar subquery is specified in a WHEN condition of a searched CASE expression. | SELECT CASE WHEN t.a IN (SELECT u.a FROM u) THEN 1 ELSE 0 END FROM t; |
| A CASE expression references multiple UDTs that are not identical to each other. | SELECT CASE t.shape.gettype()
WHEN 1
THEN NEW circle('18,18,324')
WHEN 2
THEN NEW square('20,20,400')
END;
|