• sql求两表的并集、交集、非交集、差集、结果集排序


    create table A(
     id int IDENTITY(1,1) Not null primary key,
     name varchar(20) not null default(''),
    )
    INSERT INTO [A]([name]) VALUES('a')
    INSERT INTO [A]([name]) VALUES('b')
    INSERT INTO [A]([name]) VALUES('c')
    INSERT INTO [A]([name]) VALUES('d')
    INSERT INTO [A]([name]) VALUES('e')
    INSERT INTO [A]([name]) VALUES('f')
    INSERT INTO [A]([name]) VALUES('g')
    
    create table B(
     id int IDENTITY(1,1) Not null primary key,
     name varchar(20) not null default(''),
    )
    
    INSERT INTO [B]([name]) VALUES('a')
    INSERT INTO [B]([name]) VALUES('b')
    INSERT INTO [B]([name]) VALUES('c')
    INSERT INTO [B]([name]) VALUES('d')
    INSERT INTO [B]([name]) VALUES('h')
    INSERT INTO [B]([name]) VALUES('i')
    INSERT INTO [B]([name]) VALUES('j')
    SELECT * from A union select * from B  --查询AB表的并集重复的项只显示一个
    SELECT * from A union all select * from B ----查询AB表的并集重复的也显示
    SELECT * from A union all select * from B  order by id asc ---查询AB表的并集重复的也显示,并按照id升序
    SELECT * from A INTERSECT select * from B ----查询两表的交集
    SELECT * from A EXCEPT select * from B ----查询A表中不与B表重复的记录
    --查询AB两表中所有非交集的记录
    (SELECT * from A EXCEPT select * from B) union (SELECT * from B EXCEPT select * from A) 
  • 相关阅读:
    hdu 4963(中途相遇法)
    UVALive 6869(后缀数组)
    AC自动机小结
    poj 2409+2154+2888(Burnside定理)
    HUST 1569(Burnside定理+容斥+数位dp+矩阵快速幂)
    bunoj 34990(hash)
    CSU 1506(最小费用最大流)
    CF 514C(hash)
    lightoj 1297(三分)
    lightoj 1179(线段树)
  • 原文地址:https://www.cnblogs.com/25miao/p/10611518.html
Copyright © 2020-2023  润新知