一、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/?