すべてのコメントでほのめかされているテーブル設計の明らかな問題を無視し、これが巨大なテーブルでは非常に遅くなる可能性があることを受け入れると、次のようになります。
最初に... すべての行を 1 つの巨大なコンマ区切りリストに変換するステートメントを作成します。
DECLARE @tmp VarChar(max) SET @tmp = '' SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
プレ>次に、この SO 記事で説明されているテーブル値の udf 分割を使用して、その大量の文字列を明確な句を持つテーブルに戻して、一意であることを確認します。
https://stackoverflow.com/a/2837662/261997
SELECT DISTINCT * FROM dbo.Split(',', @tmp)
プレ>