Вот список моих значений table: tree

• TREE_2ED • TREE_2ED_CIN • TREE_2ED_EM • TREE_2ED_ENV • TREE_2ED_SRF • TREE_DA • TREE_DA_CID • TREE_DA_DSR • TREE_DA_EM • TREE_DA_EST • TREE_DA_REP • TREE_DAC • TREE_DAC_EM2 • TREE_DAC_EM_DREE • TREE_DAC_EM2

Чего я хочу:

При обновлении значения замените все мои значения, которые начинаются с «TREE%», замените «_» на «/».

Пример:

• начальное значение: TREE_2ED

  • обновленное значение: TREE / 2ED

Что я сделал:

UPDATE tree
    SET value = (CASE WHEN value LIKE 'TREE%'
                     THEN ''
                END)

Можно ли проделать эту операцию с помощью pgsql?

1
MasterSinge 17 Сен 2021 в 15:58

2 ответа

Лучший ответ

Вы можете использовать функцию replace:

UPDATE tree
SET    value = REPLACE(value, '_', '/')
WHERE  value LIKE 'TREE%'
2
Mureinik 17 Сен 2021 в 13:00

Думаю, вы ищете отфильтрованное обновление:

UPDATE tree
    SET value = REPLACE(value, '_', '/')
    WHERE value LIKE 'TREE%';
1
Gordon Linoff 17 Сен 2021 в 13:00