使用 CASE in ORDER BY 子句按 SQL 中 2 列的最低值对记录进行排序
原文:https://www . geesforgeks . org/使用按子句排序的大小写来按 sql 中 2 列的最低值对记录进行排序/
在本文中,我们将看到如何在 ORDER BY 子句中使用 CASE,按照 SQL 中 2 列的最低值对记录进行排序。
案例陈述:
该语句包含一个或多个条件及其相应的结果。当满足一个条件时,它停止读取,并返回相应的结果(类似于 IF-ELSE 语句)。
如果没有条件为真,它将返回 CASE 语句中 ELSE 子句中指定的值。如果语句中没有 ELSE 子句,它将返回空值。
案例语法:
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 语句将数据库上下文切换到极客。
查询:
USE geeks;
步骤 3: 表格定义
我们的极客数据库中有以下演示表。
查询:
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
输出:
输出说明:
- 首先是标识=1,因为标识= 1 的橙色列在表中具有最低的记录。
- ID=5 是第二个,因为 ID=5 的 Orange 列在表中有倒数第二个记录。
- ID= 2 是第三个,因为如果 ID=2,则 Apple 列在表中具有倒数第三的记录,以此类推。
版权属于:月萌API www.moonapi.com,转载请注明出处