|
|
|
ขอวิธี sql เรียงเลขจุดทศนิยม เช่น 1.1.1, 1.1.10, 1.1.2 , 1.1.3 ให้ถูกต้องตามความเป็นจริงหน่อยค่ะ |
|
|
|
|
|
|
|
ลองดูคับ
ORDER BY ABS('ฟิวที่จะเรียง') ASC
|
|
|
|
|
Date :
2020-07-14 10:25:41 |
By :
natzha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หลักการ คือ แปลง string ให้เป็นตัวเลข
และ เอา'.0.0' ต่อท้าย field เพื่อป้องกัน ตัวเลข ชุดเดียว หรือ 2 ชุด เช่น 1 หรือ 1.1
Code (SQL)
order by
substring( fld+'.0.0',0, instr(fld, '.',0) -1) * 1, # sort priority ตัวที่ 1 หน้าจุดตัวแรก * 1 ทำให้เป็นตัวเลข
substring( fld +'.0.0',
instr(fld+'.0.0', '.',1)+1, # หาตำแหน่งแรกของ จุด ตัวที่ 1 + 1 = ตำแหน่งเริ่มต้น
instr(fld+'.0.0', '.', 1, 2) # หาตำแหน่งของจุดตัวที่ 2
- instr(fld+'.0.0', '.',1) - 2 # ลบด้วย ตำแหน่งของจุดตัวเลข และ - 2 เท่ากับความยาวของตัวเลขชุดที่ 2
) * 1, # ทำให้ค่าเป็น number
ชุดที่ 3 ลองคิดเอง 5555
|
ประวัติการแก้ไข 2020-07-14 11:06:13
|
|
|
|
Date :
2020-07-14 11:04:17 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|