Mám více rodič dítě hierarchie skládající se ze 100k+ záznamy. To je malá část.
Dítě | Rodič |
---|---|
1 | 2 |
1 | 3 |
2 | 3 |
Musím projít každou hodnotu ze sloupce Rodič, a zkontrolujte, zda stejná hodnota existuje také ve sloupci Dítě. Pokud tomu tak není, pak vytvořit řádek s (hodnota NULL). V tomto příkladu hodnota 3 neexistuje v Dítěti sloupec tak, potřebuju to pro vytvoření nového řádku s hodnotami (3, NULL).
Dítě | Rodič |
---|---|
3 | NULL |
1 | 2 |
1 | 3 |
2 | 3 |
Můj kód nevrátí chybu, ale to není to, co chci, aby to udělat.
INSERT IGNORE INTO #table (child, parent)
SELECT (CASE WHEN parent not in (Select child from #table) THEN parent END) as child, Null
FROM #table
Jsem si mnoho nových řádků s (NULL,NULL), ale 0 řádků s (hodnota NULL). To musí vždy nějak přeskočit do jiného ustanovení, když existuje tolik nových řádků s (NULL, NULL), ale nejsem si jistá, proč.
Pomocí SQL Server Management Studio 17. Jakákoliv pomoc je velmi ceněn.