我有下表需要在基于strand的父子层次结构中排序...我没有得到如何根据父ID订购它。
sid parent_id snum strand Sname
1 0 3 3.1 civics
2 0 3 3.2 geography
3 0 3 3.3 history
4 1 3 3.1.1 civic and insti
5 1 3 3.1.2 civic and poli
6 2 3 3.2.1 geo poli
7 4 3 3.1.1.1 CIVI
8 4 3 3.1.1.2 CIVVISSSDS
我希望基于父子层次结构中的strand以下列方式排序表。
Strand
3.1
3.1.1
3.1.1.1
3.1.1.2
3.1.2
3.2
3.2.1
3.3
从几个小时开始坚持......任何想法如何进行?
答案 0 :(得分:0)
你可以使用rpad作为order by(为构建相同长度的字符串添加一些char)
select * from your_table
order by rpad(trim(strand), 64, 'Z')
答案 1 :(得分:0)
使用此
SELECT * FROM your_table
ORDER BY RPAD(trim(strand),50,'.0');
这样,您将3.1
更改为3.1.0.0.0.
,因此排序正确无误。
将10
更改为超过max(length(strand))