2017-08-25 24 views
1

能夠讓我的語法與本論壇中的許多帖子非常接近(爲此目的),但不是全部。將兩列插入/合併爲一個 - Concat

我試圖創建一個人造主鍵/代理鍵從表中相同的數據類型結合兩列。我創建了專門用於保存此綜合值的第3列。

我的語法是

INSERT INTO TABLE A (ARTPRIMKEY) 
    SELECT (COLUMN1 ||'-'|| COLUMN2) 
    FROM TABLE A; 

但是,而不是在正確的順序新列填充,它插入新行,都用null有效地加倍的行數,但沒有做什麼,我想要它做的。

我應該看看做一個合併,而不是(雖然我不知道我的匹配條件是什麼)?

感謝

+0

爲什麼不在第1列第2列上創建組合鍵/唯一索引?如果col1,col2的值改變了新的artprimkey值不會改變,也許你需要它?這個代理鍵的價值是什麼? – xQbert

回答

1

我懷疑你想update

update a 
    set artprimkey = (COLUMN1 ||'-'|| COLUMN2) ; 

在較新版本的Oracle,你可以生成密鑰的計算列,所以你實際上並沒有存儲表中的值。

+0

就是這樣,非常感謝你,欣賞快速週轉。 – LargeMarge