我想在执行该查询后创建新表
create table newTable as select * from oldTable
然而,这似乎不起作用。如何在执行某些查询后获取新表?
答案 0 :(得分:1)
我不确定您使用的是什么DBMS或者您获得的错误,因此我将尝试回答多个系统。
如果您正在使用Oracle或PostgreSQL(可能存在此规则适用的其他系统),您的语法似乎是正确的。只是确保你的新表还不存在 - 否则就会出错。如果你试图插入一个现有的表 - 但我认为不是这样 - 你可以尝试类似的东西 -
INSERT INTO newTable SELECT * FROM oldTable
另一方面,如果您使用的是T-SQL(SQL Server),则可以选择新的表格。将使用旧表的架构创建新表。
您可以在MSDN Library了解有关INTO条款的更多信息。
您的代码应如下所示 -
SELECT *
INTO newTable
FROM oldTable
并且,指定列名称和过滤器的方式也类似 -
SELECT Column1, Column2, Column3, ...
INTO newTable
FROM oldTable
WHERE <Filter Condition>
无论情况如何,如果您指定详细信息,您将获得更多帮助。
答案 1 :(得分:1)
语法一般如下:
CREATE TABLE new_table
AS (SELECT * FROM old_table);
例如:
CREATE TABLE suppliers
AS (SELECT id, address, city, state, zip
FROM companies
WHERE id > 1000);
尝试删除星号(*)并添加括号。
阅读here了解更多示例。
答案 2 :(得分:0)
正如您所说,您希望在执行后将值复制到新表中 如果您使用游标运行存储过程,请关闭光标,然后使用以下查询
从表2中选择*进入表1
如果要复制选定的列,请转到
从表2中选择Coloumn1,column2,...到table1,其中............