Перебрать массив числовых идентификаторов - PullRequest
0 голосов
/ 08 мая 2019

В 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 покупка и оплата завершена

Этот второй пример должен возвращать только одну запись

  • напр .: 331,100,101,102,103,107,108,109
  • Вывод: 331 покупка начата

    Большое спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...