<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                本節將學習如何使用集合運算符(包括:`union`,`intersect`和`except`)來組合輸入查詢中的多個結果集 ![](https://img.kancloud.cn/87/45/8745c64a2c5e7014e1ff9858c84fbae4_841x441.png) 這幾個集合操作符的詳細說明和用法,可通過以下鏈接學習: >[danger] ## UNION - 將兩個或多個查詢的結果集合并到一個結果集中。 ## SQL Server UNION簡介 SQL Server `UNION`是一組集合操作,用于將兩個SELECT語句的結果組合到一個結果集中,該結果集包括屬于`union`中`SELECT`語句的所有行。 以下是SQL Server `UNION`的語法: ~~~sql query_1 UNION query_2 ~~~ 以下是上述語法中的查詢要求: * 兩個查詢中列的數量和順序必須相同。 * 相應列的數據類型必須相同或兼容。 下面圖中說明了`T1`表的結果集如何與`T2`表的結果集聯合: ![聯合](https://www.yiibai.com/uploads/article/2019/02/22/090006_96847.png "聯合") **UNION 與 UNION ALL** 默認情況下,`UNION`運算符從結果集中刪除所有重復的行。 但是,如果要保留重復的行,則需要明確指定`ALL`關鍵字,如下所示: ~~~sql query_1 UNION ALL query_2 ~~~ 換句話說,`UNION`運算符刪除重復行,而`UNION ALL`運算符在最終結果集中包含重復行。 **UNION 與 JOIN** INNER JOIN或LEFT JOIN等連接組合了兩個表中的列,而`UNION`組合了兩個查詢中的行。 換句話說,`join`會水平附加結果集,而`union`會垂直附加結果集。 下圖說明了`UNION`和`JOIN`之間的主要區別: ![UNION與JOIN主要區別](https://www.yiibai.com/uploads/article/2019/02/22/090518_14278.png) ## SQL Server UNION示例 請參閱[示例數據庫](https://www.yiibai.com/sqlserver/sql-server-sample-database.html "示例數據庫")中的`staff`和`customers`表,它們的結構和關系如下所示: ![表結構](https://www.yiibai.com/uploads/article/2019/02/22/090633_23238.png "表結構") #### 1\. UNION和UNION ALL示例 以下示例將員工和客戶的名稱合并到一個列表中: ~~~sql SELECT first_name, last_name FROM sales.staffs UNION SELECT first_name, last_name FROM sales.customers; ~~~ 執行上面查詢語句,得到以下結果: ![](https://www.yiibai.com/uploads/article/2019/02/22/090820_49570.png) 如上圖中,它返回了`1454`行。 `staffs`表有`10`行,`customers`表有`1445`行,如以下查詢說明所示: ~~~sql SELECT COUNT (*) FROM sales.staffs; -- 10 SELECT COUNT (*) FROM sales.customers; -- 1454 ~~~ 因為`union`的結果集只返回`1454`行,這意味著刪除了一個重復行。要包含重復行,請使用`UNION ALL`,如以下查詢中所示: ~~~sql SELECT first_name, last_name FROM sales.staffs UNION ALL SELECT first_name, last_name FROM sales.customers; ~~~ 執行上面查詢語句,得到以下結果: ![UNION ALL](https://www.yiibai.com/uploads/article/2019/02/22/091155_34906.png) 查詢按預期返回`1455`行。 #### 2\. UNION和ORDER BY示例 要對`UNION`運算符返回的結果集進行排序,請將`ORDER BY`子句放在最后一個查詢中,如下所示: ~~~sql SELECT select_list FROM table_1 UNION SELECT select_list FROM table_2 ORDER BY order_list; ~~~ 例如,要對客戶和員工的名字(`first_name`)和姓氏(`last_name`)進行排序,請使用以下查詢語句: ~~~sql SELECT first_name, last_name FROM sales.staffs UNION ALL SELECT first_name, last_name FROM sales.customers ORDER BY first_name, last_name; ~~~ 執行上面查詢語句,得到以下結果: ![排序](https://www.yiibai.com/uploads/article/2019/02/22/091448_65576.png "排序")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看