Desidero eseguire le seguenti operazioni, quando le chiavi primarie corrispondono e se non ci sono righe con "Y" attivo, inserire i record. È possibile?SE NON ESISTE nell'istruzione Merge?
ho provato questo:
-- Merge statement
MERGE INTO table1 AS DST
USING table2 AS SRC
ON (SRC.Code = DST.Code)
--Existing records updated if data changes
WHEN MATCHED
AND IF NOT EXISTS (WHERE active='Y' FROM table1)
THEN
INSERT INTO table1 (colum)
SELECT value
+-------+-------------+--------+
| Code | description | Active |
+-------+-------------+--------+
| AB | just | |
| | something | No |
+-------+-------------+--------+
solo quando non v'è alcun record attivo con lo stesso codice, voglio inserire un record. Il nuovo record sarebbe simile a questa
+-------+-------------+--------+
| Code | description | Active |
+-------+-------------+--------+
| AB | something | |
| | else | YES |
+-------+-------------+--------+
Spero che lo rende più chiaro
edit: Non importa la sua non è possibile, ho appena ricevuto questo messaggio di errore: Un'azione di tipo 'Inserisci' non è ammesso nella clausola 'WHEN MATCHED' di un'istruzione MERGE.
Questo non è come unire le opere è. Prendi in considerazione l'utilizzo di un IF tradizionale. – Toby
I dati di esempio delle strutture di tabelle e il risultato finale atteso potrebbero essere utili per comprendere la domanda e fornire e rispondere. –
Ho avuto qualche problema nel modificare il mio post ma ora ci sono alcuni dati di esempio – R2D2