У меня рабочая процедура с условиями дела.Он запускается при каждой вставке и проверяет конкретные значения в одном столбце, а затем обновляет другой столбец.Весь SP имеет от 20 до 30 CASE условий.Я перехожу с MySQL на PostgreSQL, и мне было интересно, можно ли его автоматизировать и иметь SELECT внутри CASE?(см. код ниже)
SELECT col1,col2 FORM myCASEtbl
ABC | 1
DEF | 2
123 | 3
ОТ ЭТОГО:
UPDATE myTable
SET columnName = CASE
WHEN OtherColumn LIKE '%ABC%' THEN columnName = 1
WHEN OtherColumn LIKE '%DEF%' THEN columnName = 2
WHEN OtherColumn LIKE '%123%' THEN columnName = 4
...
ELSE columnName
END
WHERE columnName IS NULL;
ДО ЭТОГО:
UPDATE myTable
SET columnName = CASE
SELECT 'WHEN OtherColumn LIKE ' + col1 + ' THEN columnName = ' + col2 FROM myCASEtbl
ELSE columnName
END
WHERE columnName IS NULL