在標題中很難很好地解釋問題。在另一行插入基於最大值的值大於值
我從一行插入6個值(或基於值)。 我還需要從第二行中插入一個值,其中:
- 在一列(
ID
)的值必須在主源行柱(CODE
)必須等於 - 的值( 100,200),而另一行的值必須爲300或400
- 輔助行中另一列(
OBJID
)中的值必須是主要行上的最低值。
源表的樣子:
OBJID | CODE | ENTRY_TIME | INFO | ID | USER
---------------------------------------------
1 | 100 | x timestamp| .... | 10 | X
2 | 100 | y timestamp| .... | 11 | Y
3 | 300 | z timestamp| .... | 10 | F
4 | 100 | h timestamp| .... | 10 | X
5 | 300 | g timestamp| .... | 10 | G
所以要提供一個例子.. 在我的第二個表我想插入OBJID
,OBJID2
,CODE
,ENTRY_TIME
,substr(INFO(...))
,ID
,USER
即從我的示例中插入第二個表中的行將如下所示:
OBJID | OBJID2 | CODE | ENTRY_TIME | INFO | ID | USER
-----------------------------------------------------------
1 | 3 | 100 | x timestamp| substring | 10 | X
4 | 5 | 100 | h timestamp| substring2| 10 | X
我對所有來自一行的插入都能正常工作。
INSERT INTO TABLE2
(ID, OBJID, INFO, USER, ENTRY_TIME)
SELECT ID, OBJID, DECODE(CODE, 100, (SUBSTR(INFO, 12,
LENGTH(INFO)-27)),
600,'CREATE') INFO, USER, ENTRY_TIME
FROM TABLE1
WHERE CODE IN (100,200);
我知道,我需要在TABLE1
使用別名,但我不知道如何讓剩下的工作,特別是在一個有效的方式。現在有200萬行,但是一旦我開始使用生產數據,將會有更多的2000萬行。
比這裏給你一個更好的解決方案,我建議你創建一個視圖,在那裏把你的邏輯的一切,得到預期的輸出你想要的方式。然後執行插入語句作爲從這個新視圖中選擇。 – g00dy
你能爲我們完成輸出表嗎?請給我們所有的行。根據當前的規範很難理解你想要什麼。 –
@FlorinGhita 如果我可以完成輸出表,那麼我就不需要首先提出這個問題。從我在第一個表中給出的示例行中,第二個表中只有一個可能的完整行。 – Slingy