В целом, вы должны следовать предложению Хосама полностью переписать предикат. Но для дальнейшего объяснения исходной проблемы проблема заключается в том, что в SQL CASE .. END является выражением и может использоваться только там, где можно использовать любое другое выражение. Условие типа «a = b» - это два выражения, соединенные логическим оператором. Возможно, вы захотите думать о нем как о логическом выражении, но это не так, как SQL это видит.
Вы можете выполнить то, что хотите, с помощью CASE, используя его как одно из двух выражений в условии, например:
WHERE a."cola2" IN ('valuea1','valuea2')
and
b."colb1" = CASE
WHEN a."cola2" = 'valuea2' THEN 'valueb3'
ELSE b."colb1"
END CASE
(Если для colb1 возможно включить NULL, вам необходимо изменить его для обработки.)