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;