SQL優化之數據複用操作

前言:週末加班身心倦,枯心無意博客編,昨天誓言日一篇,今朝抽空把坑填

正文:OK,廢話不多說,先讓博主講一哈業務場景

我將可愛美麗的產品經理提出的需求,概括之爲同數據庫中把一張A表中數據複用到另一張B表,並根據C表的某些字段來確定B表的某些字段值

實際上,這個功能有多種實現方式,比較容易想到的是第一步批量複用,第二步獲得B表全集並左連接C表來批量更新B的某些字段值,通過兩次批量操作效率的確是比單條操作效率要高出幾何倍。但是,效率更高的當然還是一條SQL就可以完成複用+確定字段值的方式。

批量複用SQL,這個相信大家都知道

insert into B表( B1,B2,B3) select B1,B2,B3 from A表

一條SQL完成複用+確定字段值

insert into B(B1,B2,B3,B4,B5,B6)
  select
  t1.B1 as B1,
  t1.B2 as B2,
  t1.B3 as B3,
  t1.B4 as B4,
  (case
  when t2.XX2 = 0 then '0'
  when t2.XX2 = 1 then '1'
  else '1'
  end) as B5,
  (case
  when t2.XX3 = t1.XX3 then '0'
  when t2.XX3 != t1.XX3 then '1'
  else '0'
  end) as B6
  from A t1
  LEFT JOIN B t2
  on t2.XX1 = t1.XX1

OK,SQL優化之數據複用操作,完結撒花

✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿ヽ(°▽°)ノ✿✿✿

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章