0Pricing
SQL Academy · บทเรียน

การเรียงลำดับด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเรียงลำดับด้วย ORDER BY
  2. การเรียงตามหลายคอลัมน์
  3. LIMIT และ OFFSET
  4. การค้นหาระเบียนอันดับต้น ๆ
← กลับไปที่ SQL Academy