日期:2014-05-17  浏览次数:20576 次

一个筛选问题
有表如下:
field1 field2 field3
張三 5 A
張三 B
張三 56 C
張三 4 A
李四 8 T
李四 5 E
李四 2
李四 3 E
李四 4 Y
李四 7 Y
王五 8 T
王五 8 H
王五 4 G
趙六 2 J
趙六 34 E
趙六 5 Y
趙六 6 U
趙六 4 H
趙六 8 B
趙六 7 F
趙六 8 R
请问如何可以选出field2,field3都不是空的人,并且distinct出来人名?

------解决方案--------------------
create table #tb(field1 varchar(10),field2 varchar(10),field3 varchar(10))
insert into #tb
select '張三','5','A'
union all select '張三',null,'B'
union all select '張三',56,'C'
union all select '張三',4,'A'
union all select '李四',8,'T'
union all select '李四',5,'E'
union all select '李四',2,null
union all select '李四',3,'E'
union all select '李四',4,'Y'
union all select '李四',7,'Y'
union all select '王五',8,'T'
union all select '王五',8,'H'
union all select '王五',4,'G'
union all select '趙六',2,'J'
union all select '趙六',34,'E'
union all select '趙六',5,'Y'
union all select '趙六',6,'U'
union all select '趙六',4,'H'
union all select '趙六',8,'B'
union all select '趙六',7,'F'
union all select '趙六',8,'R'

select distinct field1
from #tb 
where field1 not in(select field1 from #tb where isnull(field1,'')='' or isnull(field2,'')='')

drop table #tb


/*
李四
王五
趙六

*/