两表只比较部分字段,我始终没弄得,郁闷中 t1 t2 tt
a b c d a b c d a b c d
1 2 4 5 5 4 2 5 5 4 2 5
4 3 8 2 7 4 6 7 6 2 3 5
3 4 6 7 6 2 3 5 t1 与 t2 进行比较,筛选出 t2 中字段 b,c,d 都与 t1 的 b,c,d 不同的记录(不理会字段 a),得到表 tt
这个例子中,t2 的第二行 7,4,6,7 因为与 t1 的第三行 3,4,6,7 (字段 b,c,d )相同而被剔除这个sql该怎么写呀,是不是对你来说挺简单的,呵呵,谢谢了 ^_^
a b c d a b c d a b c d
1 2 4 5 5 4 2 5 5 4 2 5
4 3 8 2 7 4 6 7 6 2 3 5
3 4 6 7 6 2 3 5 t1 与 t2 进行比较,筛选出 t2 中字段 b,c,d 都与 t1 的 b,c,d 不同的记录(不理会字段 a),得到表 tt
这个例子中,t2 的第二行 7,4,6,7 因为与 t1 的第三行 3,4,6,7 (字段 b,c,d )相同而被剔除这个sql该怎么写呀,是不是对你来说挺简单的,呵呵,谢谢了 ^_^
where not exists(select * from t1 where T2.b=t1.b and T2.c=t1.c and T2.d=t1.d )
DECLARE @T1 TABLE(
A INT,
B INT,
C INT,
D INT
)
INSERT INTO @T1
SELECT 1,2,4,5 UNION ALL
SELECT 4,3,8,2 UNION ALL
SELECT 3,4,6,7
DECLARE @T2 TABLE(
A INT,
B INT,
C INT,
D INT
)
INSERT INTO @T2
SELECT 5,4,2,5 UNION ALL
SELECT 7,4,6,7 UNION ALL
SELECT 6,2,3,5SELECT T3.* FROM @T2 T3
INNER JOIN (
SELECT T2.* FROM @T2 T2
INNER JOIN @T1 T1 ON T2.B=T1.B AND T2.C=T1.C AND T2.D=T1.D
) T4 ON T3.A<>T4.A OR T3.B<>T4.B OR T3.C<>T4.C OR T3.D<>T4.D/*
5 4 2 5
6 2 3 5比T-MAC那个多拐了个弯
*/
select *
from t2
except
select t2.*
from t1,t2
where t1.b=t2.b and t1.c=t2.c and t1.d=t2.d
;