StepCoding

ฟังก์ชัน MIN() และ MAX()

อ่าน [3131] หมวดหมู่: คำสั่ง SELECT เบื้องต้น

Function MIN() และ MAX() เป็น function ในการเปรียบเทียบ มันจะคืนค่าเป็นตัวเลขที่มีค่าต่ำสุดและค่าสูงสุด เช่น ถ้าเราต้องการหาจำนวนประชากรต่ำสุด และจำนวนประชากรสูงสุดจะต้องใช้คำสั่งดังนี้

SELECT MIN(Population), MAX(Population) FROM Country;
MIN(Population)MAX(Population)
01277558000

เราสามารถใช้ ฟังก์ชัน สองตัวนี้กับข้อมูลชนิดอื่น ๆ ก็ได้ เช่น การหาค่าต่ำสุดและสูงสุดของข้อมูลชนิด String

SELECT MIN(Name), MAX(Name) FROM Country;
MIN(Name)MAX(Name)
AfghanistanZimbabwe

ในกรณีที่ field นั้น ๆ เป็นชนิด string การใช้ฟังก์ชัน ทั้งสองนี้ขึ้นอยู่กับว่า string นั้นถูกเก็บเป็นแบบ binary (case-sensitive) หรือไม่ เช่น

# ในกรณีที่ไม่ได้เก็บเป็น binary
SELECT name FROM person;
name
Calvin
alex

ถ้า name ถูกเก็บข้อมูลเป็นชนิด string แบบ nonbinary (case-insensitive) ซึ่งหมายความว่า "C" จะมีค่าใหญ่กว่า "a" ดังนั้นผลลัพธ์ที่ได้จากการหาค่าสูงสุดก็คือ "Calvin" นั่นเอง

SELECT MAX(name) FROM t;
MAX(name)
Calvin

แต่ถ้าค่าถูกเก็บเป็นแบบ binary (เช่น CHAR BINARY) ดังนั้นการเปรียบเทียบโดยการใช้ค่า byte ของอักขระนั้น ๆ (case-sensitive) ถ้าเป็นตัวอักษรตัวพิมพ์เล็กจะมีค่า bytes ใหญ่กว่าตัวอักษรตัวพิมพ์ใหญ่ ดังนั้นผลลัพธ์ที่ได้จะแตกต่างกันดังนี้

# เปลี่ยนเป็นการเก็บแบบ BINARY
ALTER TABLE person MODIFY name CHAR(20) BINARY;
SELECT MAX(name) FROM person;
MAX(name)
alex

Function ทั้งสองนี้จะไม่สนใจค่าที่เป็น NULL

ผู้สนับสนุน