Ho una multipla gerarchia padre-figlio, composto di 100k+ record. Questo è un piccolo sottoinsieme.
Bambino | Padre |
---|---|
1 | 2 |
1 | 3 |
2 | 3 |
Ho bisogno di passare attraverso ogni valore dalla colonna Genitore e verificare se lo stesso valore esiste anche nella colonna Bambino. Se non, quindi creare una riga con (valore NULL). In questo esempio il valore 3 non esiste nel Bambino, in colonna, quindi ho bisogno di creare una nuova riga con i valori (3, NULL).
Bambino | Padre |
---|---|
3 | NULL |
1 | 2 |
1 | 3 |
2 | 3 |
Il mio codice non viene restituito un errore, ma non fa quello che voglio fare.
INSERT IGNORE INTO #table (child, parent)
SELECT (CASE WHEN parent not in (Select child from #table) THEN parent END) as child, Null
FROM #table
Ricevo molte nuove righe con (NULL,NULL), ma 0 righe con (valore NULL). Essa deve in qualche modo sempre di andare avanti per la clausola else quando ci sono così tante nuove righe (NULL, NULL), ma non so perché.
Utilizzo di SQL Server Management Studio 17. Qualsiasi aiuto è molto apprezzato.