遍历一组数字ID

时间:2019-05-08 04:11:11

标签: postgresql function loops events

在PostgreSQL的SQL中,我有一列将数据作为数组输入。 该数组包含多维事件的高维序列。 它以逗号分隔的字符串形式出现(代表事件的数字ID列表) 我需要遍历数组,将Ids转换为有意义的文本,然后才能进行分类。

实现此目标的最佳方法是什么?

我尝试使用多个case语句,但仅在满足条件时才返回第一个id。 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

字符串示例:     331332,333.36,100,101,102,103,107,108,109

预期输出应仅检索大于300的数字 返回了3行

  • 开始购买331
  • 开始332购买和付款
  • 完成333笔付款和付款

第二个示例应该只返回一个记录

  • 例如:331,100,101,102,103,107,108,109
  • 输出:331个购买开始

    非常感谢您的帮助

0 个答案:

没有答案