oracle同一个字段内容进行截取和拼接

先截取dev_id字段的15位数,根据截取出来的15位数,把相同的进行筛选,在吧task_id字段多行内容进行拼接起来,在判断拼接起来的内容是否包含1和5。


SELECT SUBSTR(dev_id, 1, 15) AS truncated_dev_id, 
       LISTAGG(task_id, ',') WITHIN GROUP (ORDER BY task_id) AS concatenated_task_ids
FROM table
GROUP BY SUBSTR(dev_id, 1, 15)
HAVING CONCATENATED_TASK_IDS LIKE '%1%' AND CONCATENATED_TASK_IDS LIKE '%5%'

SELECT dev_id, LISTAGG(task_id, '') WITHIN GROUP(ORDER BY task_id) AS task_ids
FROM your_table
GROUP BY SUBSTR(dev_id, 1, 15)
HAVING INSTR(task_ids, '1') > 0 AND INSTR(task_ids, '5') > 0;