В PostgreSQL SQL у меня есть столбец, в котором данные поступают в виде массива.Этот массив содержит многомерные последовательности многомерных событий.Он представлен в виде строки, разделенной запятыми (список числовых идентификаторов, представляющих события). Мне нужно пройтись по массиву, преобразовать идентификаторы в значимый текст и затем иметь возможность категоризации.
Каков наилучший подход для достиженияthis?
Я пытался использовать несколько операторов case, но он возвращает только первый идентификатор, когда выполняются условия.Подход CASE не выглядит итеративным
SELECT
CASE
WHEN event ~ '(^|[,: ])331([,: ]|$)'
THEN 'purchase started'
WHEN event ~ '(^|[,: ])332([,: ]|$)'
THEN 'purchase & payment started'
WHEN event ~ '(^|[,: ])333([,: ]|$)'
THEN 'purchase & payment completed'
END AS event_description
FROM mytable
Пример строки: 331,332,333.36,100,101,102,103,107,108,109
Ожидаемый результат должен быть только для получения числовых чисел свыше 300, возвращено 3 строки
- 331 покупка начата
- 332 покупка и оплата начата
- 333 покупка и оплата завершена
Этот второй пример должен возвращать только одну запись