一个 SQL 不会写,大佬帮帮忙

查看 142|回复 10
yjxjn   
如果你想在数据库中进行检查,然后根据条件执行不同的 SQL 语句,可以使用存储过程( Stored Procedure )或者函数。下面是一个简单的例子,假设你使用的是 MySQL 数据库:
-- 创建存储过程
DELIMITER //
CREATE PROCEDURE UpdateOrInsertForMonth(IN target_month VARCHAR(6))
BEGIN
DECLARE record_count INT;
-- 检查记录数量
SELECT COUNT(1) INTO record_count FROM attendance_workday WHERE date_ymd LIKE CONCAT(target_month, '%');
-- 根据记录数量执行不同的 SQL 语句
IF record_count > 0 THEN
-- 如果有记录,则执行 UPDATE 语句
UPDATE your_table SET your_column = 'new_value' WHERE date_ymd LIKE CONCAT(target_month, '%');
ELSE
-- 如果没有记录,则执行 INSERT 语句
INSERT INTO your_table (date_ymd, your_column) VALUES ('20240101', 'new_value');
-- 这里请根据实际表结构和字段进行修改
END IF;
END //
DELIMITER ;
上述例子中,your_table 和 your_column 需要替换为你实际的表名和列名。存储过程中的逻辑可以根据你的需求进行修改。
然后,你可以调用这个存储过程,传入不同的月份作为参数,例如:
-- 调用存储过程,传入月份 '202401'
CALL UpdateOrInsertForMonth('202401');
您需要登录后才可以回帖 登录 | 立即注册

返回顶部