有两种方式
1、第一种:使用WM_CONCAT函数,不过这个函数已经被oracle弃用了,不建议使用,如果数据库中还有这个函数也可以使用
select sfc_no,wm_concat(mark_operation_id) from bp_marking where create_date>sysdate-1/24 group by sfc_no
简单说一下就是查询bp_marking表中的sfc_no与对应的所有的mark_operation_id的字段,并且合并到一列中
结果显示如下:
具体使用方式参考:https://www.cnblogs.com/yujin595/p/9829821.html
如果没有这个函数也想添加的话,可以试一下如下的方法(具体是否能用我没试过)
https://www.cnblogs.com/YuyuanNo1/p/7910714.html
2、第二种:使用LISTAGG函数
select sfc_no,LISTAGG(mark_operation_id,‘,‘) within group (order by mark_operation_id) from bp_marking where create_date>sysdate-1/24 group by sfc_no
结果跟上面的结果是一样的。
具体使用参考:https://blog.csdn.net/defonds/article/details/80455816
执行完之后有时候会显示字符串连接过长的问题,因为listagg设定的字符串长度只有4000,超过4000就会报错。具体处理方法暂时也不清楚。