Извините, если я не все правильно отформатировал, я впервые пишу здесь, и извините за плохой английский sh.
У меня большой запрос, который возвращает что-то вроде этого:
col1 | col2 |col3|col4
==========================
A |A1 |A2 |01/01/20
A |A1 |A3 |01/02/20
A |' ' |' ' |20/02/20
B |' ' |' ' |01/01/20
C |C1 |C2 |01/01/20
C |C1 |C3 |01/02/20
И я хочу вставить этот результат в таблицу следующим образом:
col1 | col2 |col3|col4
==========================
A |A1 |A3 |01/02/20
B |' ' |' ' |01/01/20
C |C1 |C3 |01/02/20
Я пробовал что-то вроде:
MERGE INTO dest_table d
USING (SELECT ....) a
on a.col1 = d.col1
WHEN NOT MATCHED THEN INSERT
WHEN MATCHED THEN IF col2 = ' ' THEN do nothing ELSE compare date and keep the most recent one
Когда я делаю это, он вставляет все строки
То, как я хочу, чтобы это работало, выглядит следующим образом:
- Вставьте «A; A1; A2», потому что НЕ СОГЛАСОВАНО
- «A; A1; A3» ПОДПИСАНО , потому что «A» был только что вставлен ранее, поэтому введите регистр «MATCHED»
- "A; ' ';' '"То же, что и предыдущий
Могу ли я сделать что-то подобное с" MERGE INTO "или мне следует попробовать другой метод?