关于Oracle中startwith递归以及ligstagg拼接名
select ( listagg(表中列名一'/') within group(order by rowNu desc) ) from
( select 表中列名一,rowNum rowNu from TBC_CARGO_LOCATION_INFO
where 1 = 1
start with 子列名一= '传入一个值'
connect by prior 父列名= 子列名)
上述代码中 start with … connect by prior … 是oracle中的递归调用。上述条件是查询该数据的所有上级。如果想查一个数据的所有下级只需要把connect by prior 后的条件调换位置即可,
如果没记错的话rowNum 是oracle有而mysql 没有的 这里就不介绍了,百度一下就找到了。
listagg可以给一个字段后拼接一个字符串
listagg(一个字段,‘自定义一个符号’) within group(order by 一个字段) 。
在上面sql语句中,为了能够逆序输出这个结果,我才用到了rowNum,对表进行了逆序排序。
版权声明:本文为z110655原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。