Mysql基础(⑤DISTINCT-ORDER-LIMIT-OFFSET-函数-IFNULL)

限制只返回 1 条结果(单独指令)

-- 查询所有数据,但只返回1条记录
SELECT * FROM Employee LIMIT 1;

LIMIT 1 单独使用时,会从查询结果中只取第一条记录(无论排序如何)。

跳过前 N 条记录(单独指令)

-- 查询所有数据,跳过前1条,返回后面的所有记录
SELECT * FROM Employee OFFSET 1;

去除重复值(单独指令)

-- 只查询所有不重复的薪水
SELECT DISTINCT salary FROM Employee;

这个语句会返回所有员工的薪水,但每个薪水值只出现一次(去重效果)。

组合使用示例

如果要实现 "第二高的不同薪水",需要将这些指令结合排序一起使用:

-- 步骤1:去重
SELECT DISTINCT salary FROM Employee

-- 步骤2:按降序排序(从高到低)
SELECT DISTINCT salary FROM Employee ORDER BY salary DESC

-- 步骤3:跳过第1条(最高),只取1条(第二高)
SELECT DISTINCT salary FROM Employee 
ORDER BY salary DESC 
LIMIT 1 OFFSET 1;

函数

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT

1. CREATE FUNCTION
这是告诉 MySQL:“我要创建一个自定义函数啦”。
函数就像一个 “小工具”,可以接收一些参数,做一些固定操作,然后返回一个结果。比如这里的函数就是用来计算 “第 N 高的工资” 的工具。
2. getNthHighestSalary(N INT)
这是给这个 “小工具” 起名字,并且规定它要接收的参数:

getNthHighestSalary:函数的名字(按功能起的,意思是 “获取第 N 高的工资”)。
(N INT):括号里是参数。N 是参数的名字(比如查第 2 高工资时,N 就是 2);INT 表示这个参数必须是整数。
3. RETURNS INT
告诉 MySQL:“这个函数最终会返回一个整数结果”。
因为工资是整数(比如 100、200),所以这里用 INT(整数类型)。

SELECT IFNULL 是 MySQL 中用来处理 空值(NULL) 的函数,作用是 “如果第一个值是 NULL,就返回第二个值;否则就返回第一个值”。

SELECT IFNULL(
  (子查询的结果),  -- 比如查询第二高工资,可能返回 200 或 NULL
  NULL            -- 如果子查询结果是 NULL,就返回 NULL
)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aaiier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值