Am mai multe părinte copil ierarhie alcătuită de 100k+ înregistrări. Acesta este un subset mic.
Copil | Părinte |
---|---|
1 | 2 |
1 | 3 |
2 | 3 |
Am nevoie pentru a merge prin fiecare valoare din coloana Părinte și verificați dacă aceeași valoare, de asemenea, există în coloana Copilului. Dacă nu, apoi a crea un rând cu (valoarea NULL). În acest exemplu valoarea 3 nu există în Copil coloana asa ca am nevoie de ea pentru a crea un nou rând cu valorile (3, NULL).
Copil | Părinte |
---|---|
3 | NULL |
1 | 2 |
1 | 3 |
2 | 3 |
Codul meu nu se întoarce o eroare dar nu face ceea ce vreau să fac.
INSERT IGNORE INTO #table (child, parent)
SELECT (CASE WHEN parent not in (Select child from #table) THEN parent END) as child, Null
FROM #table
Am obține mai multe rânduri noi cu (NULL,NULL), dar 0 randuri (valoarea NULL). Trebuie cumva mereu trecem mai departe la altcineva clauza, atunci când există atât de multe rânduri noi cu (NULL, NULL), dar nu sunt sigur de ce.
Folosind SQL Server Management Studio 17. Orice ajutor este apreciat.