如何实现 SQL 语句动态拼接【JAVA计算系列】

有结构相同的分表A及总表B,将表A数据汇总到表B。汇总时,根据条件,若A数据存在于B表中,则更新,若不存则插入。我们可采用merge into语句,它可以同时实现update和insert的功能,动态拼接成merge into语句让数据库执行操作。

若用java来实现,由merge into的语法特点知,需要对on条件,insert,update进行多处循环拼接字段,update处还需要去掉主键字段或索引字段,拼接SQL语句的一系列操作并不容易。用其它开发语言也面临类似的问题。
使用SPL对字段序列循环处理,实现相对容易且代码精简。

下面以同结构的源表P_HOUSE向目标表T_HOUSE数据汇总说明,其中由ID与NODE_ID组成主键。

P_HOUSE ID NODE_ID NAME ADDRESS CREATE_DATE

1 100 A A1 2018-02-06
1 300 A A10 2018-04-06
2 100 B B2 2018-03-01
2 300 B B20 2018-01-01
3 100 C C3 2018-03-04
3 300 C C30 2018-05-07
10 300 A A10 2018-06-06
20 300 B B20 2018-06-08
30 300 C
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值