MYSQL8控制流函数

MYSQL8控制流函数

    • 控制流函数
      • IF逻辑判断语句
      • IFNULL(字段,指定值)-NULL作为指定值
      • NULLIF()比较字符串是否相等
      • ISNULL()--判断表达式是否为NULL
      • CASE WHEN语句
        • 示例:

控制流函数

https://www.runoob.com/mysql/mysql-functions.html


IF逻辑判断语句

MYSQL8控制流函数_第1张图片


IFNULL(字段,指定值)-NULL作为指定值

-- 如果comm的值为null,则当作0,不为null,则还是原来的值
ifnull(comm,0) 

NULLIF()比较字符串是否相等

比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1
MYSQL8控制流函数_第2张图片

-- 如果值1为NULL,将其替换为apple
SELECT NULLIF(1, 'apple') FROM t;

ISNULL()–判断表达式是否为NULL

MYSQL8控制流函数_第3张图片


CASE WHEN语句

多选其一。
MYSQL8控制流函数_第4张图片

-- case when语句
SELECT CASE
        5
        WHEN 1 THEN '你好'
        WHEN 2 THEN 'hello'
        WHEN 5 THEN '正确'
        ELSE '其他'
    END AS info;

MYSQL8控制流函数_第5张图片

-- case when语句
-- 执行第一条正确的语句。
SELECT CASE
        WHEN 2 > 1 THEN '你好'
        WHEN 2 < 1 THEN 'hello'
        WHEN 3 > 2 THEN '正确'
        ELSE '其他'
    END AS info;

MYSQL8控制流函数_第6张图片


示例:

数据准备

USE mydb1;
-- 创建orders订单表
-- oid 订单ID
-- price 订单价格
-- payType 支付类型(1:微信,2:支付宝,3:银行卡,4:其他)
CREATE TABLE mydb1.orders(
    oid INT primary key COMMENT '订单id',
    price double COMMENT '订单价格',
    payType int COMMENT '支付类型'
);
-- 插入数据
INSERT INTO mydb1.orders
VALUES(1, 1200, 1),
    (2, 1000, 2),
    (3, 200, 3),
    (4, 3000, 1),
    (5, 1500, 2);

查询示范

SELECT *,
    CASE
        payType
        WHEN 1 THEN '微信支付'
        WHEN 2 THEN '支付宝'
        WHEN 2 THEN '银行卡'
        ELSE '其他支付'
    END AS payTypeStr
FROM mydb1.orders;

MYSQL8控制流函数_第7张图片
MYSQL8控制流函数_第8张图片

你可能感兴趣的:(数据库,sql,数据库,java)