oracle数据库中比较一个相同表中的两行数据中的不同列,并且把不同的列显示出来

表A中有行a,行b,行a和行b中可能有些列的值不一样,想把这些不一样的值显示出来。如果全一样的话,就什么都不显示。sql怎么写啊急求... 表A中有行a,行b,行a和行b中可能有些列的值不一样,想把这些不一样的值显示出来。如果全一样的话,就什么都不显示。sql怎么写啊急求 展开
 我来答
百度网友e62eb47
2013-09-11 · TA获得超过294个赞
知道小有建树答主
回答量:310
采纳率:50%
帮助的人:174万
展开全部
select a from  A a1 where not exists (select 1 from table where A a2 where a1.a=a2.b)
union
select b from  A a1 where not exists (select 1 from table where A a2 where a1.b=a2.a)
追问


追答

一般应该不会有这种题目把。。想想都觉得很坑爹。。。

declare
a number;
b number;
c number;
d varchar2(100):=null;
begin
select count(distinct column1) ,count(distinct column2) ,count(distinct column3) into a,b,c from table;
if a=1 and b=1 and c=1 then d:='null';
if a >1 then d:=d||'column1';
if b >1 then d:=d||'column2';
if c >1 then d:=d||'column3';
dbms_output.put_line('select '||d|| ' from table');
end;

这是输出查询语句的。。思路是先统计各列有多少个不同的值,然后输出来。

我感觉这应该是你自己想的题目,很坑。。

要最终结果的话,用存储过程,执行那个输出的语句,返回到一个游标里面就可以看到结果了。

太恶心了。懒得写了。。。

百度网友3ef46bc
2013-09-11 · TA获得超过214个赞
知道小有建树答主
回答量:343
采纳率:100%
帮助的人:209万
展开全部
如果 想用sql处理 建议写存储过程,逐列比较
或者 将2行复制到excel中,自己添加一行=前面2行相减
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
软件小孩
推荐于2018-04-24
知道答主
回答量:67
采纳率:0%
帮助的人:21.8万
展开全部
你这个难道只比较两行么?
如果4条纪录,两两相同,你显示什么。
数据库不是表格,行没有名字,只有列(column)有列名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taifeng0922
2017-06-07 · 超过32用户采纳过TA的回答
知道答主
回答量:60
采纳率:100%
帮助的人:26.7万
展开全部
with t as(
select 'a' a,'b' b,'c' c from dual
union all
select 'a' a,'b1' b,'c' c from dual)
select
case when count(distinct a) over()=count(a) over() then a else '' end||
case when count(distinct b) over()=count(b) over() then b else '' end||
case when count(distinct c) over()=count(c) over() then c else '' end as res
from t
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式