Att ignorera de uppenbara problemen med din bordsdesign som antyds i alla kommentarer och acceptera att detta kan visa sig vara väldigt långsamt på ett stort bord så här kan jag göra det.
Först... skulle jag skapa ett uttalande som skulle förvandla alla rader till en stor, massiv kommaavgränsad lista.
DECLARE @tmp VarChar(max)
SET @tmp = ''
SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
Använd sedan den tabellvärderade udf-delningen som beskrivs i denna SO-artikel för att förvandla den massiva strängen tillbaka till en tabell med en distinkt klausul för att säkerställa att den är unik.
https://stackoverflow.com/a/2837662/261997
SELECT DISTINCT * FROM dbo.Split(',', @tmp)