Я не думаю, что translate()
действительно то, что вам нужно. Он выполняет поиск / замену на основе символов, в то время как вы, похоже, ищете соответствие всей строке.
Вместо этого вы можете использовать выражение case
. Это стандартный SQL, который работает в большинстве СУБД.
case when e110618 in ('1', '2') then 18 else e110618 end
Если единственным возможным значением, отличным от 1 и 2, является null
, то это можно упростить, поскольку case
возвращает null
по умолчанию:
case when e110618 in ('1', '2') then 18 end
Примечание: если e110618
является числовым типом данных (а не строкой), то вы должны удалить одинарные кавычки вокруг 1
и 2
.
В вашем коде:
select(
"concat_ws(', ', case when e110618 in ('1', '2') then 18 end, e110717, e110519)"
)