当前位置:StudyEZ>学易考试社区>IT>数据库>请教一个单表查询的sql

请教一个单表查询的sql

上一主题 下一主题
1页, 共1页 (共2楼)

请教一个单表查询的sql

2007-03-06 2:54 下午
表TEST:
col1   col2   col3
A      a      1
A      a      2
B      a      3
B      a      4
C      a      5
C      a      6
A      b      7
A      b      8
A      A      9
A      A      10
B      B      11
D      c      12
D      c      13
E      c      14
E      c      15
说明:表中有2种数据,第一种是col1=col2,第二种是col1!=col2,其中第二种数据又分两种情况,a情况是col2相同的数据具有相同的col1,b情况是col2相同的数据具有不同的col1。现在要求把b情况的数据中,只保留一种相同的col1即可(哪种col1任意,可以取min(col1)或其他方法),即如下结果:
col1   col2   col3
A      a      1
A      a      2
A      b      7
A      b      8
A      A      9
A      A      10
B      B      11
D      c      12
D      c      13
谢谢!

回复: 请教一个单表查询的sql

2007-08-16 8:04 下午


create table #temp(col1 nvarchar(10),  col2  nvarchar(10) ,  col3 int)   --测试数据
insert into #temp
select 'A '  ,   'a',    1  union
select 'A'  ,  'a ',    2 union
select 'B '  , 'a ' ,    3 union
select 'B '   , 'a' ,    4  union
select 'C '    ,'a'  ,   5 union
select 'C '  ,   'a'  ,  6 union
select 'A  '  , ' b '  ,   7 union
select 'A '   , ' b '  ,   8 union
select 'A '   ,  'A '  ,   9 union
select 'A'  , 'A '  ,   10 union
select 'B' , 'B '   ,  11 union
select 'D', 'c '     ,12 union
select 'D', 'c '    ,13 union
select 'E','c '     ,14 union
select 'E'  ,'c '    , 15


select distinct * from #temp where LOWER(col1)=LOWER(col2)
union
select* from #temp where LOWER(col1)<>LOWER(col2) and  col1=(select max(col1) from #temp where  LOWER(col1)<>LOWER(col2))

 

drop table #temp  --删除测试数据

1页, 共1页 (共2帖)