ORDER BY

สวัสดีครับเพื่อนๆทุกคน เนื้อหาบทความประจำสัปดาห์นี้ต่อเรื่อง SQL จากสัปดาห์ที่แล้วนะครับ โดยจะเป็นเรื่อง ORDER BY ที่เข้าใจได้ไม่ยากครับ โดยใช้สำหรับเรียงลำดับการแสดงผลข้อมูลครับ โดยรายอะเอียดการใช้งานติดตามได้จากบทความนี้กันครับ

โครงสร้างการใช้ ORDER BY

SELECT ชื่อ Column(s)
FROM ชื่อ Table
WHERE เงื่อนไขต่างๆ
ORDER BY ชื่อ Column1 [ASC|DESC], Column2 [ASC|DESC] …

คำสั่ง ORDER BY จะเขียนในส่วนสุดท้ายของภาษา SQL ครับ แต่ว่าเป็นส่วน optional ที่จะใส่ก็หรือไม่ใส่ก็ได้ครับ โดย ORDER BY จะใส่ต่อท้ายด้วยชื่อคอลัมม์ และ ตามด้วยรูปแบบการเรียงว่าจะเป็นแบบ ASC (น้อยไปมาก, A-Z) หรือแบบ DESC ( มากไปน้อย,Z-A) ครับ และจะใส่เรียงต่อกันมากกว่า 1 column ก็ได้ครับ โดยขั้นด้วย “,” และตามด้วย column ที่ต้องการเรียงถัดไปเรื่อยๆครับ มาดูตัวอย่างวิธีการใช้กันครับ

ตัวอย่างการใช้งาน ORDER BY

ตัวอย่างการใช้งาน order by นี้ผมมีตัวอย่างตารางประวัติการขายย้อนหลังอยู่นะครับ ซึ่งถ้าเราอยากจัดเรียงรายการให้เรียงตามรหัสลูกค้า เราสามารถใช้คำสั่ง order by ได้ครับ

โดยคำสั่งนี้ผมอยากเห็นรหัสลูกค้า วันที่ซื้อ และยอดซื้อ โดยเรียงตามรหัสลูกค้าจากน้อยไปหามากครับ เลยเขียน order by [Sales History].CustomerCode เพื่อให้เรียงตามรหัสลูกค้าที่ต้องการ

เมื่อรันผลลัพธ์แล้วก็จะได้ข้อมูลเรียงตามรหัสลูกค้าตามที่ต้องการเลยครับ

ซึ่งถ้าอยากอยากแสดงผลแบบสลับกัน คือเรียงตามรหัสลูกค้า แต่เป็นแบบจากมากไปหาน้อย เราจะใส่ DESC ต่อท้ายดังรูปนี้ครับ

เมื่อใส่ DESC แล้วรันผลลัพธ์ออกมา จะได้ข้อมูลที่เรียงตามรหัสลูกค้าจากมากไปหาน้อยได้อย่างถูกต้องครับ

แต่ถ้าเราอยากเรียงทั้งรหัสลูกค้าแล้วตามด้วยวันที่ซื้อ ซึ่งเราลองเรียงรหัสจากมากไปน้อย และวันที่ซื้อจากน้อยไปหามาก เราสามารถใส่ทั้งสองคอลัมม์ลงในส่วน ORDER BY ได้ดังนี้ครับ

เมื่อรันผลลัพธ์แล้วก็จะได้ข้อมูลแบบเรียงตามรหัสลูกค้าจากมากไปน้อยแล้วตามด้วยวันที่ซื้อจากน้อยไปหามากนั่นเองครับ

แถมอีกนิด จริงๆเราสามารถเปลี่ยนจากชื่อคอลัมม์ให้เป็นหมายเลข 1,2,3 … ได้ครับ โดยหมายเลขเหล่านี้จะแทนคอลัมม์ตามคอลัมม์ที่อยู่ใน SELECT ครับ อย่างเช่นเราใส่ 1,2 นี้ ก็จะมีค่าเหมือนกับ ORDER BY รหัสลูกค้า และ วันที่ซื้อครับ

ก็จะได้ผลลัพธ์เช่นเดียวกันครับ

เรื่อง ORDER BY ก็จบลงเพียงเท่านี้ครับ ลองฝึกนำไปใช้งานกันดูนะครับ หากมีคำถามหรือข้อสงสัยในส่วนไหน สามารถพูดคุยกันได้ที่เพจ Ping2Share นะครับ แล้วพบกันใหม่ในบทความถัดไปครับ สวัสดีครับ

No Comments

Leave a Comment