作者joedenkidd (優質的藍色射手)
看板Database
標題[SQL ] 資料排序問題
時間Sun Feb 14 18:19:46 2016
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
不知道怎修改才能達到我想要的結果,請高手指點一下,感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.185.128
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1455445189.A.4BC.html
推 chippclass: 你那個方法原因出在只能針對一個減號來用的 (應該吧? 02/15 17:21
→ chippclass: C群組有兩個減號的話 可以重複把排序多弄一次就可以解 02/15 17:21
→ chippclass: 但是這樣單純的硬解,會有相同的缺點, 02/15 17:23
→ chippclass: 當減號有3個以上時就不能用了 02/15 17:23
→ joedenkidd: 了解,我也是想到硬解 再拆一組出來比 02/15 21:58
→ jej: 資料向右補齊10格, 使用'.'補齊 排序 搞定 02/17 19:07
→ joedenkidd: jej大,能舉例嗎? 02/17 20:30
→ joedenkidd: r大,看不到也 02/18 11:05
推 rockchangnew: 我的做法還是有BUG啦 02/18 11:52
推 rockchangnew: 我想到另一個做法就是A-1轉A-01然後在排序 02/18 11:55