动态拼接 sql ,然后 sp_executesql 啊
declare @n int
select @n = 20230320
declare @sql nvarchar(max)
select @sql = 'select top 10 * from pv_' + convert(varchar,@n)
exec sp_executesql @sql
2023作为一个变量拼接到需要查询的表后边,再去查询
博主试一下这个,看行不行
DELIMITER //
CREATE PROCEDURE `get_data_by_year`(IN `year` INT)
BEGIN
SET @table_name = CONCAT('table_', year);
SET @query = CONCAT('SELECT value FROM ', @table_name);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END//
DELIMITER ;