sql批量刷数据

文章描述了如何更新两个数据库表(gd_lzxx_bztjbb_zbzb和gd_wxba)的状态,通过查询特定时间范围内的操作步记录,为没有状态的条目设置相应的办结状态和时间。涉及到SQL查询和数据关联操作。
摘要由CSDN通过智能技术生成

应用场景

== 新增了一个字段,老数据的该字段都为空,值需要从其他表里去取 ==

解决方法

update gd_lzxx_bztjbb_zb zb
   set gdstatus = '4',
       gdbjr    = (select a.create_by
                     from (select gdid, create_by, create_time
                             from gd_operation_step
                            where create_time >=
                                  to_date('2023-04-20',
                                          'yyyy-MM-dd HH24:mi:ss')
                              and create_time <=
                                  to_date('2023-05-01',
                                          'yyyy-MM-dd HH24:mi:ss')
                              and (remark like '%在受理阶段决定办结%' or
                                  remark like '%在受理阶段自动办结%' or
                                  remark like '%在受理阶段转12345办结%')) a
                     left join gd_lzxx_bztjbb_zb b on a.gdid = b.gdid
                    where b.GDSTATUS is null
                      and zb.gdid = b.gdid),
       gdbjsj   = (select a.create_time
                     from (select gdid, create_by, create_time
                             from gd_operation_step
                            where create_time >=
                                  to_date('2023-04-20',
                                          'yyyy-MM-dd HH24:mi:ss')
                              and create_time <=
                                  to_date('2023-05-01',
                                          'yyyy-MM-dd HH24:mi:ss')
                              and (remark like '%在受理阶段决定办结%' or
                                  remark like '%在受理阶段自动办结%' or
                                  remark like '%在受理阶段转12345办结%')) a
                     left join gd_lzxx_bztjbb_zb b on a.gdid = b.gdid
                    where b.GDSTATUS is null
                      and zb.gdid = b.gdid)
 where gdid in (select b.gdid
                  from (select gdid, create_by, create_time
                          from gd_operation_step
                         where create_time >=
                               to_date('2023-04-20', 'yyyy-MM-dd HH24:mi:ss')
                           and create_time <=
                               to_date('2023-05-01', 'yyyy-MM-dd HH24:mi:ss')
                           and (remark like '%在受理阶段决定办结%' or
                               remark like '%在受理阶段自动办结%' or
                               remark like '%在受理阶段转12345办结%')) a
                  left join gd_lzxx_bztjbb_zb b on a.gdid = b.gdid
                 where b.GDSTATUS is null)
   and GDSTATUS is null

update gd_wxb a
   set ja_time = (select create_time
                    from (select create_time
                            from gd_wxb_operation_step
                           where gdid = a.id
                           order by create_time desc)
                   where rownum = 1)
 where id in (select id
                from gd_wxb
               where status = '2'
                 and del_flag = 0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MySQL 中使用 Excel 进行数据批量入时,有一些常用的公式可以帮助您生成 SQL 语句。以下是几个常用的公式示例: 1. CONCATENATE 函数: 假设您有一个包含数据的 Excel 表格,其中列 A、B 和 C 分别对应 MySQL 表的字段。您可以在 D 列中使用 CONCATENATE 函数来生成 INSERT 语句。例如,将以下公式放在 D2 单元格中: ``` =CONCATENATE("INSERT INTO table_name (column1, column2, column3) VALUES ('", A2, "', '", B2, "', '", C2, "');") ``` 然后将该公式拖拽填充至其他行。这将生成一系列的 INSERT 语句,根据每一行的数据动态生成。 2. TEXT 函数: 如果您需要在生成 SQL 语句时对日期或其他数据进行格式化,可以使用 TEXT 函数。例如,假设您需要将日期格式化为 'YYYY-MM-DD' 格式,可以使用以下公式: ``` =CONCATENATE("INSERT INTO table_name (column1, column2) VALUES ('", A2, "', '", TEXT(B2, "yyyy-mm-dd"), "');") ``` 这将在生成 INSERT 语句时,将 B 列中的日期格式化为指定的格式。 3. SUBSTITUTE 函数: 如果您的数据中包含引号或其他特殊字符,可能会导致生成的 SQL 语句出现错误。您可以使用 SUBSTITUTE 函数来替换这些特殊字符。例如,假设您的数据中可能包含引号,可以使用以下公式: ``` =CONCATENATE("INSERT INTO table_name (column1) VALUES ('", SUBSTITUTE(A2, "'", "''"), "');") ``` 这将在生成 INSERT 语句时,将 A 列中的引号替换为两个引号,以避免引号造成的语法错误。 请根据您的实际需求和数据进行调整,并确保生成的 SQL 语句正确无误。在执行 SQL 语句之前,请先备份数据库,以防意外发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值