Oracle数据库,一条SQL语句插入多行数据?
如图所示:目标:插入4条数据,年份是当前表最大年份加1查询出的最大年份是2024。4条数据现在我想写一条SQL。实现每次执行一遍,都会加入4条数据,而且年份都会往上涨1年...
如图所示:目标:插入4条数据,年份是当前表最大年份加1
查询出的最大年份是2024。4条数据
现在我想写一条SQL。实现每次执行一遍,都会加入4条数据,而且年份都会往上涨1年。
执行一遍后,最大的年份数据为:
2025 1 第一季度 20250101 20250331
2025 2 第二季度 20250401 20250630
2025 3 第三季度 20250701 20250930
2025 4 第四季度 20251001 20251231 展开
查询出的最大年份是2024。4条数据
现在我想写一条SQL。实现每次执行一遍,都会加入4条数据,而且年份都会往上涨1年。
执行一遍后,最大的年份数据为:
2025 1 第一季度 20250101 20250331
2025 2 第二季度 20250401 20250630
2025 3 第三季度 20250701 20250930
2025 4 第四季度 20251001 20251231 展开
2个回答
展开全部
按照你现有的表创建历史数据:
create table khqfbd_1
(khn int,
khqxh int,
khmc varchar2(20),
qsrq varchar2(8),
jsrq varchar2(8),
bz varchar2(100));
insert into khqfbd_1 values (2024,1,'第一季度','20240101','20240331','1');
insert into khqfbd_1 values (2024,2,'第二季度','20240401','20240630','1');
insert into khqfbd_1 values (2024,3,'第三季度','20240701','20240930','1');
insert into khqfbd_1 values (2024,4,'第四季度','20241001','20241231','1');
commit;
执行:
declare
v_year int;
begin
select max(khn) into v_year from khqfbd_1;
insert into khqfbd_1
values
(v_year+1, 1, '第一季度', v_year+1 || '0101', v_year+1 || '0331', '1');
insert into khqfbd_1
values
(v_year+1, 2, '第二季度', v_year+1 || '0401', v_year+1 || '0630', '1');
insert into khqfbd_1
values
(v_year+1, 3, '第三季度', v_year+1 || '0701', v_year+1 || '0930', '1');
insert into khqfbd_1
values
(v_year+1, 4, '第四季度', v_year+1 || '1001', v_year+1 || '1231', '1');
commit;
end;
执行后结果:
追问
谢谢,至少又学会了其中一种办法。我同事有一个更加简单的。
insert into khqfdb_1 select khn+1,khqxh,khmc,khn+1||substr(qsrq,5),khn+1||substr(jsrq,5),bz from khqfdb_1 where khn=(select max(khn) from khqfdb_1)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询