oracle 一张表有两个字段,a和b,字段值a=b和b=a,算作一条,怎么操作?

如题所述

第1个回答  2013-08-28
select data_info,
business_a,
business_b
from (select a.data_info,
a.business_a,
a.business_b,
row_number() over(order by a.business_a) rk -- 按某一字段升序(降序也行)排列
from 表名 a, -- 表自身做关联
表名 b
where a.business_a = b.business_b -- 两字段互相等
and a.business_b = b.business_a
)
where rk = 1 -- 取其中一条即可追问

  这个我自己也写了,不行,因为表里不止两条数据,截图只是任意两条而已,如:

  

     a    
     b    

     a    
     c    

     a    
     d    

     a    
     e    

     b    
     a    

     c    
     a    

     d    
     a    

     e    
     a    

  只算四条

第2个回答  2013-08-28
select date_info,business_a,business_b from 表名
union
select date_info,business_b,business_a from 表名

注意,union 前后两句a,b字段的位置

本回答被网友采纳
第3个回答  2013-08-28
算作一条的话 你要显示第一条 还是 第二条?追问

只显示一条,随便一条就行

采用union,试了,不行

追答

把union 换成 minus

追问

不行,这样减完是空值