Ignorując oczywiste problemy z projektem stołu, o których wspomniano we wszystkich komentarzach, i akceptując fakt, że może to działać bardzo wolno na ogromnym stole, oto jak mogę to zrobić.
Najpierw... utworzyłbym instrukcję, która zamieniłaby wszystkie wiersze w jedną wielką, masywną listę rozdzielaną przecinkami.
DECLARE @tmp VarChar(max)
SET @tmp = ''
SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
Następnie użyj podziału udf o wartości tabeli opisanego w tym artykule SO, aby zamienić ten ogromny ciąg z powrotem w tabelę z odrębną klauzulą, aby upewnić się, że jest ona unikalna.
https://stackoverflow.com/a/2837662/261997
SELECT DISTINCT * FROM dbo.Split(',', @tmp)