elect into from和insert into select from两种表复制语句区别

elect into target_table from source_table;

insert into target_table(column1,column2) select column1,5 from source_table; 

 

以上两句都是将源表source_table的记录插入到目标表target_table,但两句又有区别。
第一句(select into from)要求目标表target_table不存在,因为在插入时会自动创建。
第二句(insert into select from)要求目标表target_table存在,由于目标表已经存在,所以我们除了插入源表source_table的字段外,还可以插入常量,如例中的:5。

 

例如:需要将user_city表中的部分字段值拷贝到dim_pub_county_act表中(字段名不同),则语句如下:

INSERT
INTO
    SUI1.DIM_PUB_COUNTY_ACT
    (
        CITY_ID,
        COUNTY_ID,
        BEGIN_TIME,
        END_TIME,
        COUNTY_NAME,
        ACTIVE_FLAG,
        AREA_CODE,
        DESC_TXT
    )
SELECT
    parentid as city_id,
    cityid as county_id,
    '2011-08-15 00:00:00' as BEGIN_TIME,
    '2011-08-15 00:00:00'as END_TIME,
    cityname as COUNTY_NAME,
    1 as ACTIVE_FLAG,
    1 as AREA_CODE,
    '地区' as DESC_TXT
FROM
    user_city
WHERE
    parentid LIKE 'city1_';

 

-----------------------------------------------------------------

 

INSERT
INTO
    SUI1.DIM_PUB_DEPT_ACT
    (
        DEPT_ID,
        CITY_ID,
        COUNTY_ID,
        DEPT_NAME,
        ACTIVE_FLAG,
        BEGIN_TIME,
        END_TIME,
        DESC_TXT
    )
  SELECT
   t1.cityid as dept_id,
   t2.parentid as city_id,
   t1.parentid as county_id,
   t1.cityname as dept_name,
   1 as ACTIVE_FLAG,
   '2011-08-15 00:00:00' as BEGIN_TIME,
    '2011-08-15 00:00:00'as END_TIME,
   '片区' as DESC_TXT
FROM
    (select * from user_city where parentid like 'city101_') t1,(select * from user_city where parentid like 'city1_') t2

WHERE t1.parentid = t2.cityid;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值