oracle查询 急急急

EEXXTTJJSS 2013-11-19 10:59:48
a b c
1 3 222
1 1 333
3 22 444
3 2
5 5
6 6
上面是表A
我想得到结果是,a和b存在结果相等同意,不相等就是不同意

a 结果
1 同意
3 不同意
5 同意
6 不同意
...全文
210 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
天残地缺 2013-11-21
  • 打赏
  • 举报
回复
引用 6 楼 z_shousi 的回复:
[quote=引用 4 楼 NIan_jun 的回复:]
select a,max(d) from 
(select a,b,c,decode(a-b,0,'同意','不同意') d from test 
)
group by a
只想说 呵呵,很投巧的一个方法[/quote] 厉害了,果然精简很多
weewtoday 2013-11-19
  • 打赏
  • 举报
回复
引用 6 楼 z_shousi 的回复:
[quote=引用 4 楼 NIan_jun 的回复:]
select a,max(d) from 
(select a,b,c,decode(a-b,0,'同意','不同意') d from test 
)
group by a
只想说 呵呵,很投巧的一个方法[/quote] 的确很巧妙
CT_LXL 2013-11-19
  • 打赏
  • 举报
回复
SELECT T.A,DECODE(T.A,T.B,'TONGYI','BUTONGYI') FROM TEST T
  • 打赏
  • 举报
回复
引用 4 楼 NIan_jun 的回复:
select a,max(d) from 
(select a,b,c,decode(a-b,0,'同意','不同意') d from test 
)
group by a
只想说 呵呵,很投巧的一个方法
clshanghe 2013-11-19
  • 打赏
  • 举报
回复
CREATE TABLE test(a VARCHAR2(10),b VARCHAR2(10),c VARCHAR2(10));
------------------------------------------------------------------------
INSERT INTO test VALUES('1','3','222');
INSERT INTO test VALUES('1','1','333');
INSERT INTO test VALUES('3','22','444');
INSERT INTO test VALUES('3','2','');
INSERT INTO test VALUES('5','5','');
INSERT INTO test VALUES('6','6','');
-----------------------------------------------------------------------------
select a.A,a.b,
(case when a.A=a.B then '同意' else '不同意' end) as 比较结果
 from TEST a 
----------------------------------------------------------------------------------
A B 比较结果 1 3 不同意 1 1 同意 3 22 不同意 3 2 不同意 5 5 同意 6 6 同意
NIan_jun 2013-11-19
  • 打赏
  • 举报
回复
select a,max(d) from 
(select a,b,c,decode(a-b,0,'同意','不同意') d from test 
)
group by a
漠北雁 2013-11-19
  • 打赏
  • 举报
回复

--建表
CREATE TABLE test(a VARCHAR2(10),b VARCHAR2(10),c VARCHAR2(10));

INSERT INTO test VALUES('1','3','222');
INSERT INTO test VALUES('1','1','333');
INSERT INTO test VALUES('3','22','444');
INSERT INTO test VALUES('3','2','');
INSERT INTO test VALUES('5','5','');
INSERT INTO test VALUES('6','6','');

--將a,b相等的記錄拿出來和原Table做外連接再用decode轉一下
WITH t1 AS (SELECT DISTINCT a FROM test),t2 AS (SELECT DISTINCT a AS B  FROM test WHERE a=b)

SELECT T3.A,Decode(T3.A,T3.B,'同意','不同意') comt FROM (SELECT * FROM T1,T2 WHERE T1.A=T2.B(+) ORDER BY T1.A)T3;

--执行结果
A COMT  
1 同意  
3 不同意
5 同意  
6 同意  

漠北雁 2013-11-19
  • 打赏
  • 举报
回复
引用 1 楼 zlloct 的回复:
SELECT T.A,DECODE(T.A,T.B,'TONGYI','BUTONGYI') FROM TEST T
这样a为1和3的时候会有两条记录吧?到底是同意呢还是不同意呢。。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧