Заявления CASE с несколькими значениями - PullRequest
0 голосов
/ 19 октября 2018

Привет, я хочу написать ЗАЯВЛЕНИЕ О СЛУЧАЕ, как это:

CASE
WHEN A in ('AA','AV') and B = 'HH' then 'R'

Я получаю эту ошибку:

ОШИБКА [42803] [IBM] [DB2 / LINUXX8664] Выражение, начинающееся с «B», указанного в предложении SELECT, предложении HAVING или предложении ORDER BY, не указано в предложении GROUP BY или в предложении SELECT, предложении HAVING или предложении ORDER BY с функцией столбца и безПредложение GROUP BY указано.

Но в моем предложении select нет буквы "B".

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вам нужно 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 
0 голосов
/ 19 октября 2018

Этот оператор CASE является частью предложения SELECT, ORDER BY или HAVING.

Для этой ошибки в сочетании с этим кодом у вас также должно быть предложение GROUP BY.Вы должны включить B как часть этой группы по выражению.В противном случае B представляет целый диапазон возможных значений, некоторые из которых могут соответствовать или не соответствовать условию = 'HH';код неоднозначный.

...