一、IF函数
IF函数是MySQL中常用的条件判断函数之一,语法如下:
IF(expr1, expr2, expr3)
其中expr1为条件表达式,如果为真则返回expr2的结果,否则返回expre3的结果。可以简单理解为:
若条件成立,则返回A,否则返回B
二、CASE函数
CASE函数也是MySQL中常见的条件函数之一,它类似于程序中的switch语句,可以根据不同的条件返回不同的结果。它有两种语法形式:
1、简单CASE:
CASE expr WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE result END
其中,expr 为需要被匹配的表达式,后面的 WHEN…THEN 子句为条件判断语句,当 expr 匹配某一 value 时,才会执行 result。当 expr 不匹配任何 value 时,才会执行 ELSE 后面的 result。
2、搜索CASE:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END
与简单 CASE 相比,搜索 CASE 在语法上不需要提供任何表达式或者其他条件。只需要根据需要的匹配和匹配后的结果即可。其条件不是基于一个固定的表达式,而是基于提供的条件逐项检查,一旦找到合适的条件就执行结果。
三、IF和CASE的应用场景
1、数据筛选和分类
IF语句通常用于数据筛选和分类。例如,我们可以使用IF来识别顾客是否大于平均数量购买了某个产品。
SELECT customerName, IF(orderAmount > AVG(orderAmount), 'Above Average', 'Below Average') AS 'Purchase' FROM orders GROUP BY customerName;
以上代码以客户名称为分组条件,计算客户所订购的金额是否高于平均值,并根据结果分类。
2、数据替换和转换
我们也可以使用CASE来替换或转换数据。例如:
SELECT employeeName, title, CASE WHEN title = 'Sales Manager' THEN 'Senior Sales Manager' WHEN title = 'Sales Representative' THEN 'Junior Sales Manager' ELSE 'Unknown Role' END AS 'NewTitle' FROM employees;
以上代码将 titles 列中的字符细分成不同的类别,并替换成新的详细数据。
3、数据排序和排名
IF语句可以使用在排序和排名中,用于排序规则的定义。
SELECT productName, productVendor, buyPrice, IF(productVendor = 'Exotic Liquids', 1, IF(productVendor = 'Cruz Del Sur Music', 2, IF(productVendor = 'Gourmet Lanchonetes', 3, 0))) AS 'VendorSeq' FROM products ORDER BY VendorSeq, buyPrice DESC;
以上代码以 buyPrice 为条件对商品进行排序,并将 productVendor 列中不同的值进行排序。
原创文章,作者:XEKQO,如若转载,请注明出处:https://www.506064.com/n/362705.html