集合函数

    xiaoxiao2021-04-12  50

    1,如何得到两个表中不相同的记录

    A表字段 id,major B表字段id,major

    方法一:select id,major 

    from source

    where id not in(select id from target)

    union 

    select id,major

    from target

    where id not in(select id from source); 

    方法二:select id,major from

    (select id,major from source

    union

    select id,major from target)

    group by id,major

    having (count(*)=1);

    本例中查看两条记录是否相同,以id是否相同为标准

    2,如何找出A表比B表多出的记录

    方法一:使用集合运算MINUS

    select id,major from A

    minus 

    select id,major from B;

    方法二:使用not exists

    select id,major

    from A

    where not exists (select id from B where B.id =A.id);

    方法三:使用not in

    select id,major

    from A

    where id not in(select id from B);

    3,如何找出两个表中相同的记录

    方法一:使用集合运算INTERSECT

    select id,major from A

    intersect

    select id,major faom B;

    方法二:使用in

    select id,major from A

    where id in(select id form B);

    方法三:使用exists

    select id,major from A

    where exists(select id from B where A.id =B.id);

    这里判断两条记录是否相同主要看id是否相同

    4,ORA-00937:not a single-group group function

    解决方法:在group by后加上所有非聚合函数的字段名

    转载请注明原文地址: https://ju.6miu.com/read-667554.html

    最新回复(0)