使用select distinct插入

时间:2013-01-09 13:17:38

标签: sql-server tsql

假设我有2个表t1和t2。

create table t1 
{
id int not null,
col1 int null,
col2 int null,
col3 int null
}

create table t2
{
id uniqueidentifier not null,
col1 int null,
col2 int null,
col3 int null
}

我想将下面的结果集插入表t2。

select distinct col1, col2, col3 from t1

如何使用查询实现此目的?我在下面的语句中尝试过,但我知道它在语法上是错误的。

insert into t2
select newid(), distinct col1, col2, col3 from t1

3 个答案:

答案 0 :(得分:16)

insert into t2
select newid(),a.*
from
(Select distinct col1, col2, col3 from t1) a

答案 1 :(得分:2)

如果自动生成,您可以省略uniqueidentifier字段。

INSERT INTO t2 (col1, col2, col3)
SELECT DISTINCT col1, col2, col3 FROM t1

有关Using uniqueidentifier Data

的更多信息

答案 2 :(得分:2)

这应该有效。

INSERT INTO t2
SELECT NEWID(), col1, col2, col3 
FROM
(
    SELECT DISTINCT col1, col2, col3 
    FROM t1
)DT