SQL集合运算:差集、交集、并集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL集合运算:差集、交集、并集相关的知识,希望对你有一定的参考价值。

参考技术A

SQL集合运算:差集、交集、并集

2011年03月30日 15:41:00

阅读数:15446

1、差集( except )

select a from t_a

except

select a from t_b

-- 也可写作:

select a from t_a where a not in (select a from t_b)

-- 多个字段时:

select a,b from t_a

except

select a,b from t_b

-- 多字段的查集也可写成:

select a,b from t_a where (a,b) not in (select a,b from t_b)

2、交集( intersect )

select a from t_a

intersect

select a from t_b

-- 也可写作:

   select a from t_a where a in (select a from t_b)

3、并集( union )

select a from t_a

union distinct

select a from t_b

用java编写程序,求集合的并集、交集和差集

有集合A=1,2,3,4和B=1,3,7,9,11, 编写一个应用程序输出A和B交集、并集和差集
解题思路:
 并集是指两个集合合并,但是去掉重复的元素的集合。可以使用HashSet类的addAll的方法将两个集合合并
 交集是指两个集合中都有的元素组成的集合,可以使用HashSet类的retainAll的方法得到两个集合的交集
 差集是指属于A集合但是不属于B集合的元素组成的集合

参考技术A public static void  main(String[] args) 
     Integer[] A = 1,2,3,4;
     Integer[] B = 1,3,7,9,11;
    
     List<Integer> listA = Arrays.asList(A);
     List<Integer> listB = Arrays.asList(B);
    
     List<Integer> jiaoji = new ArrayList<Integer>();
     for(Integer a:listA)
     if(listB.contains(a))
     jiaoji.add(a);
    
    
     System.out.println(jiaoji);
     List<Integer> bingji = new ArrayList<Integer>();
     for(Integer a:listA)
     if(!bingji.contains(a))
     bingji.add(a);
    
    
     for(Integer b:listB)
     if(!bingji.contains(b))
     bingji.add(b);
    
    
    
     System.out.println(bingji);
    
     List<Integer> chaji = new ArrayList<Integer>();
     for(Integer a:listA)
     if(!listB.contains(a))
     chaji.add(a);
    
    
     System.out.println(chaji);
    

参考技术B package yeyu;

import java.util.ArrayList;

public class Jiaoji

/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
ArrayList<Integer> list=new ArrayList<Integer>();
ArrayList<Integer> list2=new ArrayList<Integer>();
ArrayList<Integer> list3=new ArrayList<Integer>();
list.add(1);
list.add(2);
list2.add(1);
list2.add(2);
list2.add(3);
list2.add(4);
for (int i = 0; i < list.size(); i++)
for (int j = 0; j < list2.size(); j++)
if(list.get(i)==list2.get(j)||list.get(i).equals(list2.get(j)))
list3.add(list.get(i));



for (int i = 0; i < list3.size(); i++)
System.out.println(list3.get(i));




参考技术C

package java6;

import java.util.*;

public class Test7_4

public static void main(String[] args)

// TODO Auto-generated method stub

Integer[] A = 1,2,3,4;

Integer[] B = 1,3,7,9,11;

List<Integer> listA = Arrays.asList(A);

List<Integer> listB = Arrays.asList(B);

List<Integer> jiaoji = new ArrayList<Integer>();

for(Integer a:listA)

if(listB.contains(a))

jiaoji.add(a);

System.out.println(jiaoji);

List<Integer> bingji = new ArrayList<Integer>();

for(Integer a:listA)

if(!bingji.contains(a))

bingji.add(a);

for(Integer b:listB)

if(!bingji.contains(b))

bingji.add(b);


参考技术D 什么意思,你都把思路写出来了啊

以上是关于SQL集合运算:差集、交集、并集的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server进阶集合运算

用java编写程序,求集合的并集、交集和差集

Python set运算 集合差集,并集,交集,list去重复

Python入门-3序列:19集合-特点-创建和删除-交集并集差集运算

vector/set集合-交集并集差集对称差

java找到两个list的交集并集差集