Пренебрегвайки очевидните проблеми с дизайна на вашата маса, както се споменава във всички коментари, и приемайки, че това може да се окаже много бавно на огромна маса, ето как мога да го направя.
Първо... бих създал израз, който ще превърне всички редове в един голям масивен списък, разделен със запетая.
DECLARE @tmp VarChar(max)
SET @tmp = ''
SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
След това използвайте разделянето на udf с таблична стойност, описано в тази статия за SO, за да превърнете този огромен низ обратно в таблица с отделна клауза, за да гарантирате, че е уникален.
https://stackoverflow.com/a/2837662/261997
SELECT DISTINCT * FROM dbo.Split(',', @tmp)