2017-12-18 423 views
1

我有Table1列A,B & C. 我想创建表2并创建ColumnA,Table1(唯一)中的值的主键,然后相应地从Table1填充值B和C(基于列A的唯一值)。基于另一个表的唯一值插入值(规范化)

任何帮助将不胜感激。 编辑:我正在使用SQL服务器,并尝试使用INSERT INTO ... SELECT DISTINCT。

+0

读https://meta.stackoverflow.com/questions/349789/how-do-i-create-a-minimal-complete-verifiable - 例子 –

+0

你使用的是MySQL还是MS SQL Server?不要标记不涉及的产品。 – jarlh

回答

0

如果您正在使用MS SQL Server中,试试这个

WITH CTE 
AS 
(
    SELECT 
     RN = ROW_NUMBER() OVER(PARTITION BY ColumnA ORDER BY ColumnA), 
     ColumnA, 
     ColumnB, 
     ColumnC 
     FROM YourTable 
) 
INSERT INTO Table2 
(
    ColumnA, 
    ColumnB, 
    ColumnC 
) 
SELECT 
    ColumnA, 
    ColumnB, 
    ColumnC 
    FROM CTE 
     WHERE RN = 1 
+0

谢谢,但我收到错误消息156,级别15,状态1,行136 关键字'ORDER'附近的语法不正确 – KAT

+0

您正在使用的确切查询是什么? –

+0

我使用了与您所建议的相同的查询。除了7列而不是3 – KAT

相关问题