Java 在START WITH LPAD SQL查询中反转结果顺序
返回Java 在START WITH LPAD SQL查询中反转结果顺序,java,sql,oracle11g,dml,Java,Sql,Oracle11g,Dml,返回 SELECT LPAD('*', 2*level-1)||SYS_CONNECT_BY_PATH(unit_data, '/') "battle_unit_id" FROM battle_units where connect_by_isleaf = 1 START WITH battle_unit_id= 600 CONNECT BY PRIOR parent_id = battle_unit_id; 在哪里,, F-16是信条的曾孙 问题1 我希望颠倒此顺序,
SELECT LPAD('*', 2*level-1)||SYS_CONNECT_BY_PATH(unit_data, '/') "battle_unit_id"
FROM battle_units
where connect_by_isleaf = 1
START WITH battle_unit_id= 600
CONNECT BY PRIOR parent_id = battle_unit_id;
在哪里,,
F-16是信条的曾孙
问题1
我希望颠倒此顺序,以便获得以下信息:
*/F-16/Jet powered aircraft/Air/Doctrine
问题2
目前,battle_units表的battle_units_id为1到50000,但上面的查询只提供了一个battle_units_id的层次结构。是否有方法获取50000个battle_units_id的所有层次结构:
即
*/条令/空中/喷气式飞机/F-16(id=30)
*/条令/空中/喷气式飞机/F-22(id=31)
*/条令/星际/非人类/银河病毒(id=45321)
……等等
我的oracle版本:
*/Doctrine/Air/Jet powered aircraft/F-16
你能试试这个吗
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
这应该从所有没有父母的战斗单位开始,得到所有的孩子
SELECT LPAD('*', 2*level-1)||SYS_CONNECT_BY_PATH(unit_data, '/') "battle_unit_id"
FROM battle_units
START WITH parent_id IS NULL
CONNECT BY PRIOR battle_unit_id = parent_id;