SQL 9 联合结果集 1. 简单的结果集联合

    技术2024-07-13  63

    UNION要放置在两个查询语句之间。比如我们要查询公司所有员工(包括临时工)的标识号码、姓名、年龄信息。

    查询正式员工信息的SQL语句如下:

    SELECT Fnumber, Fname, Fage FROM T_Employee

    而查询临时工信息的SQL语句如下:

    SELECT Fnumber, Fname, Fage FROM T_TempEmployee

     

    只要用UNION链接两个查询语句,就可以将两个查询结果集联合为一个结果集,SQL语句如下:

    SELECT FNumber, Fname, Fage FROM T_Employee UNION SELECT FIdCardNumber, FName, FAge FROM T_TempEmployee

    +---------------+---------+------+ | fnumber       | fname   | fage | +---------------+---------+------+ | DEV001        | Tom     |   25 | | DEV002        | Jerry   |   28 | | DEV003        | Potter  | NULL | | HR001         | Jane    |   23 | | HR002         | Tina    |   25 | | IT001         | Smith   |   28 | | IT002         | NULL    |   27 | | SALES001      | Timmy   |   25 | | SALES002      | Stone   |   35 | | 1234567890121 | Sarani  |   33 | | 1234567890122 | Tom     |   26 | | 1234567890123 | Yalaha  |   38 | | 1234567890124 | Tina    |   26 | | 1234567890125 | Konkaya |   29 | | 1234567890126 | Fotifa  |   46 | | 1234567890127 | James   |   24 | +---------------+---------+------+

    可以看到UNION将两个独立的结果集联合成为了一个结果集。

    UNION可以连接多个结果集,就像加号“+”可以连接多个数字一样简单,只要在每个结果集之间加入UNION即可,比如下面的SQL语句就连接了3个结果集:

    SELECT FNumber, FName, FAge FROM T_Employee WHERE Fage < 30

    UNION

    SELECT FIdCardNumber, FName, FAge FROM T_TempEmployee WHERE Fage > 40

    UNION

    SELECT FIdCardNumber, FName, FAge FROM T_TempEmployee WHERE Fage < 30

    +---------------+---------+------+ | FNumber       | FName   | FAge | +---------------+---------+------+ | DEV001        | Tom     |   25 | | DEV002        | Jerry   |   28 | | HR001         | Jane    |   23 | | HR002         | Tina    |   25 | | IT001         | Smith   |   28 | | IT002         | NULL    |   27 | | SALES001      | Timmy   |   25 | | 1234567890126 | Fotifa  |   46 | | 1234567890122 | Tom     |   26 | | 1234567890124 | Tina    |   26 | | 1234567890125 | Konkaya |   29 | | 1234567890127 | James   |   24 | +---------------+---------+------+

     

     

     

     

    最新回复(0)