ขอถามวิธีการเรียงข้อมูลครับผม
กระทู้เก่าบอร์ด อ.Yeadram

 973   1
URL.หัวข้อ / URL
ขอถามวิธีการเรียงข้อมูลครับผม

อยากทราบว่า การสั่งเรียงข้อมูลที่มีรูปแบบ data type เป็น Text
สมมติ ฟิวที่ต้องการให้เรียงชื่อ DocNum ซึ่งมีข้อมูลดังนี้
ผมสั่งให้เรียงจากน้อยไปมาก

IS-PARTB-ALL-01(02)
IS-PARTB-ALL-02(02)
IS-PARTB-ALL-03(02)
....
IS-PARTB-ALL-09(02)
IS-PARTB-ALL-10(02)
IS-PARTB-ALL-100(02)ลำดับที่ 100 มาต่อที่ 10แทนที่จะเป็น 11
IS-PARTB-ALL-101(02)
IS-PARTB-ALL-102(02)
...
IS-PARTB-ALL-109(02)
IS-PARTB-ALL-11(02)ลำดับที่ 11 มาต่อที่ 109
IS-PARTB-ALL-110(02) I
S-PARTB-ALL-111(02
IS-PARTB-ALL-112(02)
IS-PARTB-ALL-113(02)
...

ถ้าข้อมูลไม่เกิน 100 มันจะเรียงให้ปกติ01-99
แต่ถ้าข้อมูลเกิน 100 มันจะเรียงเหมือนดังข้างต้นเลยครับ
ลักษณะเหมือนมันคิดเพิ่ม "0" ให้เลขสองหลัก
จาก 10 เป็น 100

ปัญหานี้พอจะมีวิธีแก้หรือเปล่าครับผม

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R16523
เรียงแบบ text มันสนใจข้อมูลตามลำดับจากซ้ายไปขวาครับ โดยไม่สนใจว่าแต่ละข้อมูลมีความยาวเท่าไร

ถ้าตราบใดที่หลักก่อนหน้า ยังเปรียบเทียบกันได้อยู่ คือไม่เท่ากัน มันก็จะยังคงเปรียบเทียบที่หลักนั้นต่อไปครับ ดังนั้น
11 จึงมากกว่า 100 เสมอครับ
วิธีคิดนะครับ
หลักแรก 1 กับ 1 เท่ากัน มันก็จะไปเทียบหลักต่อไป
หลักสอง ของข้อมูล 100 คือ เลข 0
หลักสอง ของข้อมูล 11 คือ เลข 1
ดังนั้น 11 มากกว่า 100 แน่นอนครับ

เพราะฉะนั้น จงหาวิธีการอื่นครับ อย่าเรียงแบบ text
- เช่น แยกคำมันออกมา ด้วยฟังก์ชั่น mid() แล้วไปเรียงที่ผลของมัน หรือ
- สร้างฟิลด์ ที่เป็น number มาเรียงทดแทน ครับ


@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2333s