参考答案: C
详细解析:
正确答案C。 在进⾏INSERT更新表数据时,源表与⽬标表的对应关系依赖于在select⼦句中列的顺序,而不是表与表之间列名的对应关系。select * 的顺序和目标表字段顺序不一致,会造成region_name和region_desc的内容会次序颠倒。
大数据计算服务(MaxCompute,原ODPS)中的地区维表dim_region共三个字段,结构如下 regionjd string region_name string regiondesc string insert date datetime 开发想做数据探查时创建了一张关于地区的临时表tmp_region,语句如下:create table tmp_region( regionjd string, region_desc string, region name string, insert_date datetime); 然后将dim_region中的数据导入tmp_region中:insert overwrite table tmp_region select * from dim_region; 则对此执行结果描述正确的是______。
A. 两张表字段顺序不一样,会执行出错
B. 数据会根据字段名称对应上,逻辑上正确
C. 语句可以执行,但是region_name和region_desc的内容会次序颠倒
D. 在SQL语句提交阶段语义分析时会报错
参考答案: C
详细解析:
正确答案C。 在进⾏INSERT更新表数据时,源表与⽬标表的对应关系依赖于在select⼦句中列的顺序,而不是表与表之间列名的对应关系。select * 的顺序和目标表字段顺序不一致,会造成region_name和region_desc的内容会次序颠倒。