使用create命令进行sql查询

时间:2013-05-21 11:43:24

标签: sql sql-server-2008

我在从另一个表创建表时遇到问题。 我正在使用查询:

CREATE TABLE new_table as ( SELECT Distinct * FROM old-table)

给出错误

Incorrect syntax near the keyword 'as'.

3 个答案:

答案 0 :(得分:1)

SELECT Distinct * INTO new_table 
FROM old-table 
GROUP BY whatever you want to group by

编辑:您可以将行转换为可比较的Varchar,或者您可以按要分隔的列值进行分组。

答案 1 :(得分:0)

您可以使用select ... into

select  distinct * 
into    new_table
from    old_table

答案 2 :(得分:0)

要么

SELECT ROW_NUMBER() OVER (yourcolumn) as Row,  * 
INTO new_table 
FROM old-table 

DELETE FROM new_table where Row > 1

OR

SELECT ROW_NUMBER() OVER (yourcolumn) as Row,  * 
INTO new_table 
FROM old-table 
WHERE Row = 1

无法通过ntext进行DISTINCT。否则,首先使用varchar创建表,然后在插入上添加一个带有ignore重复项并在其上强制转换的唯一索引。如果超过您的列,您可能会丢失数据,但请注意。

可以将xml转换为另一个表,然后根据需要进行过滤和操作,但前两个是我可能会推荐的。