在使用SQL时,常会有这样的需求:
将查到的数据,直接写到一张表中,希望一条语句实现,而不是先create table ,再insert into,如何实现?
Hive中
CTAS语法支持
create table ... as select ...
可以直接直接将select语句中查询出来的内容,插入到create table语句创建的表中,同时create table语句仅需要指定表名和表的属性,不需要指定表的字段名和字段类型,创建的表的字段名和字段类型会继承select语句中查询出来的内容的字段名和字段类型。
优点
: 一条语句,简单方便,
不足
:新建表和插入的字段没有comment,如果有comment的需求,需要单独执行添加comment的语句。
SQL Server
SELECT ... INTO ...语句
select <字段/*> into <新表名> from <原有表/ 子查询 / 其他条件>
样例可以参考官方给出的内容:
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms190750%28v%3dsql.105%29