在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个购买开始
非常感谢您的帮助