在 ORDER BY 子句中使用 CASE 按 SQL 中 2 列的最小值对记录进行排序
在本文中,我们将看到如何在 ORDER BY 子句中使用 CASE 来按 SQL 中 2 列的最小值对记录进行排序。
案例声明:
该语句包含一个或多个条件及其相应的结果。当满足条件时,它停止读取并返回相应的结果(类似于 IF-ELSE 语句)。
如果没有条件为真,则返回在 CASE 语句中的 ELSE 子句中指定的值。如果语句中不存在 ELSE 子句,它将返回 NULL。
案例语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN condition3 THEN result3
ELSE result
END;
ORDER BY:该关键字用于按升序或降序对结果集进行排序。默认情况下,它按升序对记录进行排序。 ASC 或 DESC 是分别按升序或降序对记录进行排序的关键字。
按语法排序:
SELECT column_name1, column_name2, ...
FROM table_name
ORDER BY column_name1, column_name2, ... ASC|DESC;
步骤 1:创建数据库
使用以下 SQL 语句创建名为 geeks 的数据库。
询问:
CREATE DATABASE geeks;
步骤 2:使用数据库
使用以下 SQL 语句将数据库上下文切换到 geeks。
询问:
USE geeks;
第 3 步:表定义
我们的极客数据库中有以下 demo_table。
询问:
CREATE TABLE demo_table(
ID int,
NAME VARCHAR(20),
APPLE int,
ORANGE int);
第 4 步:向表中插入数据
询问:
INSERT INTO demo_table VALUES
(1, 'Romy', 45, 7),
(2, 'Rinkle', 20, 25),
(3,'Shalini', 22, 29),
(4, 'Akanksha',50, 55),
(5,'Ayushi', 40, 13);
步骤 5:在 ORDER BY 子句中使用 CASE 按 2 列的最小值对记录进行排序
为了演示,我们将使用 'ORANGE' 和 'APPLE' 列的最小值对表进行排序。
询问:
SELECT * FROM demo_table
ORDER BY CASE
WHEN APPLE< ORANGE THEN APPLE
ELSE ORANGE
END
输出:
输出说明:
- ID=1 排在第一位,因为 ID=1 的橙色列在表中的记录最低。
- ID=5 是第二个,因为 ID=5 的橙色列在表中具有第二低的记录。
- ID= 2 是第三个,因为如果 ID=2 的 Apple 列在表中具有第三低的记录,依此类推。