看板 Database 關於我們 聯絡資訊
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: http://sqlfiddle.com/#!15/931f9/8 比如說這樣? 02/15 17:22
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
rockchangnew: https://goo.gl/AJvOZK 02/17 23:35
joedenkidd: r大,看不到也 02/18 11:05
rockchangnew: https://goo.gl/photos/g2fzanWgxB4zmfAG9 02/18 11:49
rockchangnew: 我的做法還是有BUG啦 02/18 11:52
rockchangnew: 我想到另一個做法就是A-1轉A-01然後在排序 02/18 11:55