如何从Temp表到Sql one数据库表获得Distinct Records

时间:2013-05-01 09:11:59

标签: sql sql-server sql-server-2008

我有一个名为"#Test"的临时表,其中包含带有数据的"T1", "T2", "T3"列。 我有一个名为“TestTbl”的数据库表,它具有相同的列。 我想将#Test表格中的数据插入TestTbl,其中T1列的记录不同。 您是否知道如何在TestTbl表中插入不同的记录?

3 个答案:

答案 0 :(得分:1)

INSERT INTO TestTbl (T1,T2,T3)
SELECT Distinct(T1), T2, T3 FROM #Test

编辑后进一步解释

INSERT  INTO TestTbl
        ( T1 ,
          T2 ,
          T3
        )
        SELECT  T1 ,
                T2 ,
                T3
        FROM    ( SELECT    T1 ,
                            T2 ,
                            T3 ,
                            Row_Number() OVER ( PARTITION BY T1 ORDER BY T1) AS record
                            -- you need to select the relevant clause here for the order
                            -- do you want first or latest record? 
                  FROM      #Test
                ) tmp
        WHERE   tmp.record = 1 ;

答案 1 :(得分:1)

你可以尝试这样....

INSERT INTO TestTbl (T1,T2,T3)  SELECT T1,T2,T3 from
(
Select Row_Number() over(Partition By T1 order By T1) as row,* from #Test
) a
 where a.row=1;

答案 2 :(得分:0)

获取不同的记录

SELECT DISTINCT column_name,column_name
FROM table_name

插入记录

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...)