2017-12-18 333 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