[SQL ] 资料排序问题

楼主: joedenkidd (优质的蓝色射手)   2016-02-14 18:19:46
Hi All
我遇到一个排序问题,请问题是否能在 seach的时候解掉
资料如下
字段资料
群组 资料
A A-1
A A-2
A A-11
B B-3
B B-2
B B-5
C C-1-1
C C-1-3
C C-1-11
C C-2-11
期望输出结果
A A-1
A A-2
A A-11
B B-2
B B-3
B B-5
C C-1-1
C C-1-3
C C-1-11
C C-2-11
目前做法如下
select *,LPAD(LTRIM(split_part(资料,'-',2)),3,'0') as ss from table order by 群组 asc,ss asc,资料 asc
但是这样子只能解 A B问题
C的排序会变成
C-1-1
C-1-11
C-1-3
C-2
不知道怎修改才能达到我想要的结果,请高手指点一下,感谢
作者: chippclass (善假狼赚钱中)   2016-02-15 17:21:00
你那个方法原因出在只能针对一个减号来用的 (应该吧?C群组有两个减号的话 可以重复把排序多弄一次就可以解http://sqlfiddle.com/#!15/931f9/8 比如说这样?但是这样单纯的硬解,会有相同的缺点,当减号有3个以上时就不能用了
楼主: joedenkidd (优质的蓝色射手)   2016-02-15 21:58:00
了解,我也是想到硬解 再拆一组出来比
作者: jej (晃奶大馬桶)   2016-02-17 19:07:00
资料向右补齐10格, 使用'.'补齐 排序 搞定
楼主: joedenkidd (优质的蓝色射手)   2016-02-17 20:30:00
jej大,能举例吗?
作者: rockchangnew (rock)   2016-02-17 23:35:00
楼主: joedenkidd (优质的蓝色射手)   2016-02-18 11:05:00
r大,看不到也
作者: rockchangnew (rock)   2016-02-18 11:49:00
https://goo.gl/photos/g2fzanWgxB4zmfAG9我的做法还是有BUG啦我想到另一个做法就是A-1转A-01然后在排序

Links booklink

Contact Us: admin [ a t ] ucptt.com