第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > MySQL中的分支判断—case when if ifnull nullif语句(超详细)

MySQL中的分支判断—case when if ifnull nullif语句(超详细)

时间:2023-09-17 14:37:12

相关推荐

MySQL中的分支判断—case when if ifnull nullif语句(超详细)

一、case when 语句

基本语法1:

SELECTCASE [被判断字段]WHEN [条件1] THEN [条件1结果]WHEN [条件2] THEN [条件2结果]ELSE [都不符合时的结果]ENDAS[结果集别名]FROM [表名];被判断字段与条件1、条件2做比较,若比较结果相同则返回对应的THEN的结果,若都不符合,则返回ELSE的结果

LeetCode练习题:627. 交换工资https://leetcode-/problems/swap-salary/

为了减小文章篇幅,方便阅读,题目请点击链接跳转查看

【题解】

UPDATE salarySETsex = CASE sexWHEN 'm' THEN 'f'ELSE 'm'END;

基本语法2:

SELECTCASEWHEN [布尔类型结果] THEN [条件1结果]WHEN [布尔类型结果] THEN [条件2结果]ELSE [都不符合时的结果]ENDAS[结果集别名]FROM [表名];判断条件从前向后直到有一个WHEN为true时返回对应的结果,如果WHEN都不成立返回ELSE的结果.

LeetCode练习题:626. 换座位https://leetcode-/problems/exchange-seats/

【题解】

SELECT (CASE WHEN MOD(id,2) = 1 AND id = (SELECT COUNT(*) FROM seat) THEN idWHEN MOD(id,2) = 1 THEN id+1ElSE id-1END) AS id, studentFROM seatORDER BY id;

二、if语句

基本语法:

IF (value1,value2,value3)**value1** 为布尔表达式或bu布尔值**value2** 当value1结果为true时返回的结果**value3** 当value1结果为false时返回的结果

LeetCode练习题:627. 交换工资https://leetcode-/problems/swap-salary/

【题解】

UPDATE salary SET sex = IF(sex = 'm','f','m')

三、ifnull语句

SELECT IFNULL(value1,value2) AS status;当value1为null时,返回结果为value2当value1非null时,返回结果为value1

【示例】

SELECT IFNULL(null,'123') AS status;结果为: 123

四、nullif语句

SELECT NULLIF(value1,value2);当value1与value2的结果相同时,输出结果为null;否则为value1的结果;

【示例1】

SELECT NULLIF(111,111);SELECT NULLIF('111',111);SELECT NULLIF(111,'111');SELECT NULLIF('111','111');以上四个结果都为null;

【示例2】

SELECT NULLIF(111,222);SELECT NULLIF('111',222);SELECT NULLIF(111,'222');SELECT NULLIF('111','222');以上四个结果都为value1的值:111

文章部分内容参考自:/xinyang/?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。