มีวิธีเรียงลำดับ บ้านเลขที่จากน้อยไปมากได้หรือป่าวค่ะมีปัญหาที่ข้อมูลเป็น text



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

20 พ.ค. 63 , 15:08:10
อ่าน 199 ครั้ง

MAKI

หนูต้องการเรียงลำดับจากบ้านเลขที่
เช่น จะมีบ้านเลขที่ 1
                      1/1
                      10
                      2
ปกติ 2 ต้องมาก่อนก่อน 10 อยากให้เรียนตามน้อยไปมากคะ
                         

 

21 พ.ค. 63 , 08:22:44
ตอบกลับ #1

สันติสุข

ถ้า T เป็นชื่อเทเบิล และ N เป็นเลขที่บ้าน ก็ต้องสร้างคิวรี่เพื่อเรียงข้อมูลดังนี้

select * from T order by val(replace(N,"/","."))

หลักการคือเปลี่ยน / เป็นจุดทศนิยมแทน แล้วตีความเป็นค่าตัวเลข ดังนั้น 1/1 ก็กลายเป็น 1.1 แล้วการเรียงก็จะเป็นตามที่ต้องการ  แต่ใช้ไม่ได้กับบ้านที่มีตัวอักษรซึ่งผมไม่แน่ใจว่าจะมีประเภท 123ก, 123ข หรือเปล่า แต่ถ้ามี ระบบอาจเลือกตัวไหนขึ้นมาแสดงก่อนก็ได้ เพราะตีค่าเป็น 123 เหมือนๆกัน
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

21 พ.ค. 63 , 10:12:03
ตอบกลับ #2

MAKI


 

21 พ.ค. 63 , 11:24:16
ตอบกลับ #3

สันติสุข

ลืมบอกไป กรณีใส่ตัวอักษรต่อท้ายบ้านเลขที่เดียวกัน ให้เพิ่มค่า N ต่อท้ายการเรียงลำดับอีกที

select * from T order by val(replace(N,"/",".")), N
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI


บอร์ดเรียนรู้ Access สำหรับคนไทย