⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

LEAST与GREATEST函数

学习在多个值中快速取最小或最大值,简化条件逻辑。 · 难度:入门 · +15XP

SQL LEAST 与 GREATEST —— 取多值中的最小和最大

LEAST()和GREATEST()是SQL中非常实用的函数。LEAST返回参数列表中的最小值,GREATEST返回最大值。它们可以比较多个列的值或常量。

基本语法

SELECT LEAST(value1, value2, value3, ...) FROM table;
SELECT GREATEST(value1, value2, value3, ...) FROM table;

实战示例

假设有一张产品表,记录了三个供应商的报价:

CREATE TABLE products (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  supplier_a_price DECIMAL(10,2),
  supplier_b_price DECIMAL(10,2),
  supplier_c_price DECIMAL(10,2)
);
INSERT INTO products VALUES
(1, '螺丝', 0.50, 0.45, 0.55),
(2, '螺母', 0.30, 0.35, 0.28),
(3, '垫片', 0.20, 0.18, 0.22);

-- 找出每个产品的最低价和最高价 SELECT name, LEAST(supplier_a_price, supplier_b_price, supplier_c_price) AS 最低价, GREATEST(supplier_a_price, supplier_b_price, supplier_c_price) AS 最高价 FROM products;

处理NULL值

注意:如果任意参数为NULL,LEAST和GREATEST都返回NULL。需要用COALESCE处理:

SELECT LEAST(COALESCE(a, 9999), COALESCE(b, 9999), COALESCE(c, 9999)) FROM t;

动手练习

  1. 基础练习:创建一张学生成绩表(语文、数学、英语三列),用LEAST和GREATEST找出每个学生的最高分和最低分科目。
  2. 进阶应用:用LEAST/GREATEST结合CASE判断最高分和最低分分别来自哪一科。
  3. 项目实战:在电商系统中用LEAST找出多仓库发货中离用户最近的仓库(比较各仓库到用户的距离)。

接下来学什么?

下一课学习NULL值的处理——COALESCE和NULLIF函数。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0