具有多个值的 CASE 语句
CASE Statements with multiple values
你好,我想写这样的 CASE STATEMENT:
CASE
WHEN A in ('AA','AV') and B = 'HH' then 'R'
我收到这个错误:
ERROR [42803] [IBM][DB2/LINUXX8664] An expression starting with "B" specified in a SELECT clause, HAVING clause, or ORDER BY clause is not specified in the GROUP BY clause or it is in a SELECT clause, HAVING clause, or ORDER BY clause with a column function and no GROUP BY clause is specified.
但我的 select 子句中没有 "B"。
此 CASE
语句是 SELECT、ORDER BY 或 HAVING 子句的一部分。
对于这个错误,结合这段代码,你还必须有一个GROUP BY子句。您需要将 B
作为该 group by 子句的一部分。否则,B
表示可能值的整个范围,其中一些可能满足也可能不满足 = 'HH'
条件;代码不明确。
您需要 END
然后值
select CASE
WHEN A in ('AA','AV') and B = 'HH' then 'R' end
CASE 的一般语法
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
你好,我想写这样的 CASE STATEMENT:
CASE
WHEN A in ('AA','AV') and B = 'HH' then 'R'
我收到这个错误:
ERROR [42803] [IBM][DB2/LINUXX8664] An expression starting with "B" specified in a SELECT clause, HAVING clause, or ORDER BY clause is not specified in the GROUP BY clause or it is in a SELECT clause, HAVING clause, or ORDER BY clause with a column function and no GROUP BY clause is specified.
但我的 select 子句中没有 "B"。
此 CASE
语句是 SELECT、ORDER BY 或 HAVING 子句的一部分。
对于这个错误,结合这段代码,你还必须有一个GROUP BY子句。您需要将 B
作为该 group by 子句的一部分。否则,B
表示可能值的整个范围,其中一些可能满足也可能不满足 = 'HH'
条件;代码不明确。
您需要 END
然后值
select CASE
WHEN A in ('AA','AV') and B = 'HH' then 'R' end
CASE 的一般语法
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END