51Testing软件测试论坛

标题: oracle排序之后如何按照不重复进行分组 [打印本页]

作者: 测试积点老人    时间: 2019-12-12 10:48
标题: oracle排序之后如何按照不重复进行分组
oracle排序之后如何按照不重复进行分组
比如查询出来只有一列,排序的时候不光按照这个列进行排列,所以查出来的结果会像这样A,B,C,D,E,A,C,D,A,B。现在需要将它分组为[(A,B,C,D,E),(A,C,D),(A,B)]也就是每当找到一个新的A就分组拼接,拼接结果为[A-B-C-D-E,A-C-D,A-B]这个该如何实现,最好直接能在查询语句中直接实现。
就像map里的contains,一旦不包括在map里就把前面的分为一组,再拼接。

作者: 海海豚    时间: 2019-12-13 09:25
写一个mysql的写法给你参考:
1.替换','
2.替换'-A'
3.前后拼接'[',']'
select concat('[',replace(replace('A,B,C,D,E,A,C,D,A,B', ',', '-'), '-A', ',A'),']')
作者: bellas    时间: 2019-12-13 09:35
参考下这个https://zhidao.baidu.com/question/1992858476361453467.html
作者: qqq911    时间: 2019-12-13 10:42
相当于用A做分隔符
作者: 梦想家    时间: 2019-12-13 11:04
写一个mysql的写法给你参考:

1.替换','
2.替换'-A'
3.前后拼接'[',']'

select concat('[',replace(replace('A,B,C,D,E,A,C,D,A,B', ',', '-'), '-A', ',A'),']')
作者: jingzizx    时间: 2019-12-13 12:19
可以的
作者: Miss_love    时间: 2019-12-14 14:21





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2