日期和值转换

yeotifhr  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(221)

我正在插入表2中的id,而表1中不存在该id。表1在date(datetime)、gen(varchar(1))中有完美的数据类型,但表2在同一列date(varchar(255))、gen(float)1-m、2-f中有不同的数据类型。我在样本集中分享了这个问题。
表1

ID  date                  Gen
    193 1996-03-26 00:00:00 M
    446 1997-09-20 00:00:00 F
    689 1997-02-21 00:00:00 F
    612 1993-10-19 00:00:00 M

表2

ID  date                    Gen
123 1993-03-02 00:00:00     1
456 2019-10-19 11:50:13.913 2
689 1997-02-21 00:00:00     2
789 2019-11-04 08:06:36.71  1
012 2000-10-02 07:11:19     1

我需要在表1中添加新的id。在使用insert查询时,如何转换date和gen变量,如table1格式。
结果:表1

ID  date                  Gen
    193 1996-03-26 00:00:00 M
    446 1997-09-20 00:00:00 F
    689 1997-02-21 00:00:00 F
    612 1993-10-19 00:00:00 M
    123 1993-03-02 00:00:00 M
    456 2019-10-19 00:00:00 F
    789 2019-11-04 00:00:00 M
    012 2000-10-02 00:00:00 M
bihw5rsg

bihw5rsg1#

如果要在中插入行 table2 那些不在 table1 ,您可以使用 insert 带过滤逻辑:

insert into table1 (id, date, gen)
    select t2.id, t2.date, (case when gen = 1 then 'M' else 'F' end)
    from table2 t2
    where not exists (select 1 from table1 t1 where t2.id = t1.id);

相关问题