我有两个表A和B.两个表每个表有58列。
表" A"有Column1,Column2,Column3,Column4,Column5,A1,A2,A3,...,A53。
表" B"有Column1,Column2,Column3,Column4,Column5,B1,B2,B3,...,B53。
我使用了FULL OUTER JOIN。 和 我有输出,
我的输出表" MOT" Column1,Column2,Column3,Column4,Column5 ,A1,A2,A3,...,A53, Column1,Column2,Column3,Column4,Column5 ,B1,B2 ,B3,......,B53。
我想要关注输出。
输出表" OT"有 Column1,Column2,Column3,Column4,Column5,A1,A2,A3,...,A53,B1,B2,B3,...,B53 。
所以我不希望输出中有重复的列。
感谢您的帮助。谢谢。
答案 0 :(得分:2)
您需要确定是否需要列A [Column1,Column2,Column3,Column4,Column5]来自表A或B并使用别名。
实施例: 别名表' A'作为' a'那么
Select
a.Column1,a.Column2,a.Column3, a.Column4, a.Column5, A1, A2, A3,...,A53, B1, B2, B3,...,B53
答案 1 :(得分:0)
我使用循环并生成动态查询。这将从表中排除B.Column1,B.Column2,B.Column3,B.Column4,B.Column5。
DECLARE @sel VARCHAR(MAX)
DECLARE @columnName VARCHAR(MAX)
DECLARE @temp VARCHAR(MAX)
DECLARE @frm VARCHAR(MAX)
DECLARE @counter INT
SET @counter = 1
SET @sel = 'select A.*';
SET @temp = '';
SET @frm = ' from table';
SET @columnName = ' , B';
WHILE @counter <= 53
BEGIN
SET @temp = @temp + @columnName + cast(@counter as varchar(4));
SET @counter = @counter + 1;
END
SET @columnName = @sel + @temp + @frm;
EXEC(@columnName);