Ignorando os problemas óbvios com o design da sua tabela, como mencionado em todos os comentários, e aceitando que isso pode ser muito lento em uma mesa enorme, aqui está como posso fazer isso.
Primeiro... eu criaria uma declaração que transformaria todas as linhas em uma grande lista delimitada por vírgulas.
DECLARE @tmp VarChar(max)
SET @tmp = ''
SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
Em seguida, use a divisão udf com valor de tabela descrita por este artigo SO para transformar essa string enorme de volta em uma tabela com uma cláusula distinta para garantir que ela seja exclusiva.
https://stackoverflow.com/a/2837662/261997
SELECT DISTINCT * FROM dbo.Split(',', @tmp)