MySQL——case_when

 

一个添加语句的存储过程,需要判断参数不能为空,userName的名称不允许为张王李赵开头。 

DELIMITER //

CREATE PROCEDURE AddBillionaire(
    IN p_birthday DATE,
    IN p_userName VARCHAR(100),
    IN p_countMoney DECIMAL(15, 2),
    IN p_age INT,
    IN p_sex VARCHAR(10),
    IN p_address VARCHAR(200),
    IN p_introduce TEXT
)
BEGIN
    -- 判断参数不能为空
    IF p_birthday IS NULL OR p_userName IS NULL OR p_countMoney IS NULL OR p_age IS NULL OR p_sex IS NULL OR p_address IS NULL THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '参数不能为空';
    END IF;
    
    -- 判断userName的名称不允许为张王李赵开头
    IF LEFT(p_userName, 1) = '张' OR LEFT(p_userName, 1) = '王' OR LEFT(p_userName, 1) = '李' OR LEFT(p_userName, 1) = '赵' THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'userName的名称不允许为张王李赵开头';
    END IF;
    
    -- 参数检查通过后,执行插入操作
    INSERT INTO 亿万富翁表 (birthday, userName, countMoney, age, sex, address, introduce)
    VALUES (p_birthday, p_userName, p_countMoney, p_age, p_sex, p_address, p_introduce);
END //

DELIMITER ;


CALL AddBillionaire('1985-05-15', '刘晓明', 1234567890, 38, '男', '北京市朝阳区', '互联网科技新锐');

 

通过case,when语句来查询数据,数值为男时显示【雄性】,数值为女时则显示【女孩】

SELECT
    id,
    birthday,
    userName,
    countMoney,
    age,
    sex,
    address,
    introduce,
    CASE
        WHEN sex = '男' THEN '【雄性】'
        WHEN sex = '女' THEN '【女孩】'
        ELSE '未知' -- 可选,用于处理除'男'和'女'之外的其他情况
    END AS sex_description
FROM
    亿万富翁表;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值