การเรียงลำดับด้วย ORDER BY
เรียงแถวจากน้อยไปมากและจากมากไปน้อย
การเรียงลำดับด้วย ORDER BY เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดลำดับจึงสำคัญ
โดยค่าเริ่มต้น SELECT จะคืนค่าแถวโดย ไม่มีการรับประกันลำดับ ฐานข้อมูลสามารถส่งแถวกลับมาในลำดับใดก็ได้ตามที่สะดวก
เมื่อจำเป็นต้องได้ผลลัพธ์ที่คาดเดาได้ เช่น รายการเรียงตามตัวอักษรหรือฟีดที่แสดงรายการใหม่ล่าสุดก่อน คุณต้องระบุอย่างชัดเจนด้วย ORDER BY
-- Without ORDER BY, row order is NOT guaranteed
SELECT name, price
FROM products;ส่วนคำสั่ง ORDER BY
ORDER BY อยู่ใกล้ส่วนท้ายของคำสั่งค้นหา หลัง WHERE และก่อน LIMIT โดยระบุชื่อคอลัมน์ที่ต้องการใช้เรียงลำดับ
คำสั่งนี้เรียงผลิตภัณฑ์ตามตัวอักษรโดยใช้ name
SELECT name, price
FROM products
ORDER BY name;จากน้อยไปมากเป็นค่าเริ่มต้น
หากไม่ระบุเป็นอย่างอื่น การเรียงลำดับจะเป็นแบบ จากน้อยไปมาก: A ถึง Z สำหรับข้อความ จากค่าน้อยไปค่ามากสำหรับตัวเลข และจากวันเก่าไปวันใหม่สำหรับวันที่
คุณสามารถเขียน ASC เพื่อระบุให้ชัดเจนได้ แต่จะไม่เปลี่ยนแปลงอะไร
-- These two queries are identical
SELECT name, price FROM products ORDER BY price;
SELECT name, price FROM products ORDER BY price ASC;การเรียงลำดับจากมากไปน้อย
เพิ่ม DESC เพื่อกลับลำดับ: Z ถึง A ค่ามากไปค่าน้อย และใหม่สุดไปเก่าสุด
คำสั่งนี้แสดงผลิตภัณฑ์ที่ราคาแพงที่สุดก่อน
SELECT name, price
FROM products
ORDER BY price DESC;การเรียงลำดับวันที่
วันที่และเวลาประทับจะเรียงตามลำดับเวลา DESC ช่วยให้ได้แถวล่าสุดก่อน ซึ่งเป็นรูปแบบมาตรฐานสำหรับฟีดกิจกรรมและบันทึกต่าง ๆ
SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC;การเรียงตามคอลัมน์ที่ไม่ได้เลือก
คอลัมน์ที่ใช้เรียงลำดับ ไม่จำเป็นต้องปรากฏในรายการ SELECT คุณสามารถเรียงตามสิ่งที่ผู้ใช้ไม่เคยเห็นได้
ในที่นี้เราแสดงเฉพาะชื่อ แต่เรียงตามราคาเบื้องหลัง
SELECT name
FROM products
ORDER BY price DESC;การเรียงตามตำแหน่งคอลัมน์
PostgreSQL อนุญาตให้เรียงตาม ตำแหน่ง ของคอลัมน์ในรายการ SELECT ORDER BY 2 หมายถึง “คอลัมน์ที่เลือกเป็นลำดับที่สอง”
วิธีนี้สะดวกสำหรับคำสั่งค้นหาอย่างรวดเร็ว แต่การใช้ชื่อคอลัมน์จริงจะชัดเจนและปลอดภัยกว่า
-- 2 refers to price (the 2nd column)
SELECT name, price
FROM products
ORDER BY 2 DESC;การเรียงตามนิพจน์
คุณสามารถเรียงตามค่าที่คำนวณได้ ไม่ใช่เฉพาะคอลัมน์ที่จัดเก็บไว้ นิพจน์จะถูกประเมินสำหรับแต่ละแถว แล้วจึงนำมาใช้เรียงลำดับ
คำสั่งนี้จัดอันดับผลิตภัณฑ์ตามมูลค่าสินค้าคงคลังรวม
SELECT name, price, stock
FROM products
ORDER BY price * stock DESC;การเรียงตามชื่อแทน
หากกำหนดชื่อแทนให้นิพจน์ใน SELECT คุณสามารถนำชื่อแทนนั้นกลับมาใช้ใน ORDER BY ได้ ทำให้คำสั่งค้นหาอ่านง่ายขึ้น
SELECT name, price * stock AS inventory_value
FROM products
ORDER BY inventory_value DESC;ความแตกต่างระหว่างตัวพิมพ์เล็กใหญ่ในการเรียงข้อความ
การเรียงข้อความเป็นไปตาม กฎการจัดเรียงอักขระ ของฐานข้อมูล และตัวพิมพ์ใหญ่อาจถูกเรียงแตกต่างจากตัวพิมพ์เล็กในแบบที่คุณไม่คาดคิด
หากต้องการบังคับให้เรียงโดยไม่แยกตัวพิมพ์เล็กใหญ่ ให้เรียงตามสำเนาคอลัมน์ที่แปลงเป็นตัวพิมพ์เล็กด้วย LOWER()
SELECT name
FROM products
ORDER BY LOWER(name);ตำแหน่งของ ORDER BY
โปรดจำลำดับเชิงตรรกะของส่วนคำสั่ง:
FROMเลือกตารางWHEREกรองแถวORDER BYเรียงสิ่งที่เหลือLIMITตัดผลลัพธ์ให้เหลือเท่าที่กำหนด
การเรียงลำดับจะเกิดขึ้น หลังจากการกรองเสมอ
SELECT name, price
FROM products
WHERE price > 10
ORDER BY price DESC;ตรวจสอบความเข้าใจ
คำสั่งค้นหาใดแสดงผลิตภัณฑ์ที่ ราคาถูกที่สุดก่อน
สรุป
ตอนนี้คุณควบคุมลำดับแถวได้แล้ว:
ORDER BY columnใช้เรียงผลลัพธ์ASC(ค่าเริ่มต้น) เรียงจากค่าน้อยไปค่ามาก ส่วนDESCจะกลับลำดับ- คุณสามารถเรียงตามคอลัมน์ ตำแหน่ง นิพจน์ หรือชื่อแทนได้
- ใช้
LOWER()เพื่อเรียงข้อความโดยไม่แยกตัวพิมพ์เล็กใหญ่
บทเรียนถัดไป คุณจะจัดการค่าที่เท่ากันด้วยการเรียงตามหลายคอลัมน์พร้อมกัน
SELECT name, price
FROM products
ORDER BY price DESC;คำถามที่พบบ่อย
บทเรียน “การเรียงลำดับด้วย ORDER BY” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเรียงลำดับด้วย ORDER BY” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเรียงลำดับด้วย ORDER BY”
เรียงแถวจากน้อยไปมากและจากมากไปน้อย คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การเรียงลำดับด้วย ORDER BY” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม
ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเรียงลำดับด้วย ORDER BY
- การเรียงตามหลายคอลัมน์
- LIMIT และ OFFSET
- การค้นหาระเบียนอันดับต้น ๆ