De voor de hand liggende problemen met je tafelontwerp negeren, zoals vermeld in alle opmerkingen en accepteren dat dit erg traag kan zijn op een enorme tafel, hier is hoe ik het zou kunnen doen.
Eerst... zou ik een statement maken dat alle rijen zou veranderen in één grote, door komma's gescheiden lijst.
DECLARE @tmp VarChar(max)
SET @tmp = ''
SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
Gebruik vervolgens de tabelwaarde udf-splitsing beschreven in dit SO-artikel om die enorme reeks terug te zetten in een tabel met een aparte clausule om ervoor te zorgen dat deze uniek is.
https://stackoverflow.com/a/2837662/261997
SELECT DISTINCT * FROM dbo.Split(',', @tmp)