梵蒂冈之花
考虑到您标记了多个产品,我想说的是完全正确的语法是在ISO / ANSI SQL-92标准中找到的语法:<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 <case operand> <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><else clause> ::= ELSE <result><case operand> ::= <value expression><when operand> ::= <value expression><result> ::= <result expression> | NULL<result expression> ::= <value expression>语法规则1) NULLIF (V1, V2) is equivalent to the following <case specification>: CASE WHEN V1=V2 THEN NULL ELSE V1 END2) COALESCE (V1, V2) is equivalent to the following <case specification>: CASE WHEN V1 IS NOT NULL THEN V1 ELSE V2 END3) COALESCE (V1, V2, . . . ,n ), for n >= 3, is equivalent to the following <case specification>: CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, . . . ,n ) END4) If a <case specification> specifies a <simple case>, then let CO be the <case operand>: a) The data type of each <when operand> WO shall be comparable with the data type of the <case operand>. b) The <case specification> is equivalent to a <searched case> in which each <searched when clause> specifies a <search condition> of the form "CO=WO".5) At least one <result> in a <case specification> shall specify a <result expression>.6) If an <else clause> is not specified, then ELSE NULL is im- plicit.7) The data type of a <case specification> is determined by ap- plying Subclause 9.3, "Set operation result data types", to the data types of all <result expression>s in the <case specifica- tion>.Access Rules None.General Rules1) Case: a) If a <result> specifies NULL, then its value is the null value. b) If a <result> specifies a <value expression>, then its value is the value of that <value expression>.2) Case: a) If the <search condition> of some <searched when clause> in a <case specification> is true, then the value of the <case specification> is the value of the <result> of the first (leftmost) <searched when clause> whose <search condition> is true, cast as the data type of the <case specification>. b) If no <search condition> in a <case specification> is true, then the value of the <case expression> is the value of the <result> of the explicit or implicit <else clause>, cast as the data type of the <case specification>.