oracle统计字段的不同值,如何找到2个表中2个字段的不同值

怎么找到2个表中2个字段的不同值?

比如Table1中的字段Field1和Table2中的字段Field2,如下所示:

Table1.Field1

11111111111

22222222222

33333333333

55555555555

66666666666

77777777777

88888888888

99999999999

Table2.Field2

11111111111

22222222222

33333333333

44444444444

55555555555

66666666666

77777777777

88888888888

请问SQL怎么写才能把44444444444和99999999999找出来?

------解决方案--------------------

引用:引用:直接写个查询不就出来了

select * from table1 where field =44444444444(如果field为varchar类型则用'44444444444')

这2个字段中的值不是固定的,有时少444444,有时多了个555555.

我是要统计2个字段中,不同的值有那几个?就是在Field1中有,F……

三个操作MINUS UNION INTERSECT

--方法1

WITH T AS (

SELECT 11111111111 AS A, 11111111111 AS B FROM DUAL UNION ALL

SELECT 22222222222 AS A, 22222222222 AS B FROM DUAL UNION ALL

SELECT 33333333333 AS A, 33333333333 AS B FROM DUAL UNION ALL

SELECT 55555555555 AS A, 44444444444 AS B FROM DUAL UNION ALL

SELECT 66666666666 AS A, 55555555555 AS B FROM DUAL UNION ALL

SELECT 77777777777 AS A, 66666666666 AS B FROM DUAL UNION ALL

SELECT 88888888888 AS A, 77777777777 AS B FROM DUAL UNION ALL

SELECT 99999999999 AS A, 88888888888 AS B FROM DUAL

)

(

SELECT T.A FROM T

UNION

SELECT T.B FROM T

)

MINUS

(

SELECT T.A FROM T

INTERSECT

SELECT T.B FROM T

)

--方法2

WITH T AS (

SELECT 11111111111 AS A, 11111111111 AS B FROM DUAL UNION ALL

SELECT 22222222222 AS A, 22222222222 AS B FROM DUAL UNION ALL

SELECT 33333333333 AS A, 33333333333 AS B FROM DUAL UNION ALL

SELECT 55555555555 AS A, 44444444444 AS B FROM DUAL UNION ALL

SELECT 66666666666 AS A, 55555555555 AS B FROM DUAL UNION ALL

SELECT 77777777777 AS A, 66666666666 AS B FROM DUAL UNION ALL

SELECT 88888888888 AS A, 77777777777 AS B FROM DUAL UNION ALL

SELECT 99999999999 AS A, 88888888888 AS B FROM DUAL

)

SELECT T.A FROM T

MINUS

SELECT T.B FROM T

UNION

(

SELECT T.B FROM T

MINUS

SELECT T.A FROM T

)

------解决方案--------------------

想找一个里面有而另一个没有的话

直接以一个表里面的field值为数据集查询另一个表里面field值不在这个集合里面的数据

select * from table where field1 not in (select field2  from table2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值