sqlnotinexcept
A. sql not in 两个表找不同的问题 100分在线等……
SQLSERVER版本:
select * from t1 t where t.a1 in(
select a1 from t1 except select a1 from t2 )
附上我的测试sql:
create table #1(a1 varchar(10),a2 nvarchar(10),a3 varchar(10));
create table #2(a1 varchar(10),a2 nvarchar(10),a3 varchar(10));
insert into #1( a1,a2,a3)values('01','张三','90'),('02','李四','85'),('03','王五','89');
insert into #2( a1,a2,a3)values('01','张三','98'),('04','谢六','88'),('05','陈四','87');
select * from #1 t where t.a1 in(
select a1 from #1 except select a1 from #2 )
drop table #1;
drop table #2;
ORACLE版本:
select * from t1 t where t.a1 in(
select a1 from t1 minus select a1 from t2 );
附上测试sql:
create table t1(a1 varchar(10),a2 nvarchar2(10),a3 varchar(10));
create table t2(a1 varchar(10),a2 nvarchar2(10),a3 varchar(10));
insert into t1( a1,a2,a3) select * from (
select '01' a1 ,'张三' a2,'90' a3 from al
union
select '02' a1 ,'李四' a2,'85' a3 from al
union
select '03' a1 ,'李四' a2,'89' a3 from al);
insert into t2( a1,a2,a3) select * from (
select '01' a1 ,'张三' a2,'98' a3 from al
union
select '04' a1 ,'谢六' a2,'88' a3 from al
union
select '05' a1 ,'陈四' a2,'87' a3 from al);
select * from t1 t where t.a1 in(
select a1 from t1 minus select a1 from t2 );
drop table t1;
drop table t2;