如何用存储过程查询不同年份独立表中的数据

img


如何用存储过程查询不同年份独立表中的数据,比如查询时输入2023就可以查2023年表中的数据

动态拼接 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

img

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 ;