sql Union和Union All的使用方法
更新時(shí)間:2009年07月07日 01:56:29 作者:
UNION指令的目的是將兩個(gè)SQL語(yǔ)句的結(jié)果合并起來。從這個(gè)角度來看, 我們會(huì)產(chǎn)生這樣的感覺,UNION跟JOIN似乎有些許類似,因?yàn)檫@兩個(gè)指令都可以由多個(gè)表格中擷取資料。
UNION的一個(gè)限制是兩個(gè) SQL 語(yǔ)句所產(chǎn)生的欄位需要是同樣的資料種類。另外,當(dāng)我們用 UNION這個(gè)指令時(shí),我們只會(huì)看到不同的資料值 (類似 SELECT DISTINCT)。 union只是將兩個(gè)結(jié)果聯(lián)結(jié)起來一起顯示,并不是聯(lián)結(jié)兩個(gè)表
UNION 的語(yǔ)法如下: [SQL 語(yǔ)句 1]
UNION
[SQL 語(yǔ)句 2] 假設(shè)我們有以下的兩個(gè)表格,
Store_Information 表格 store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Internet Sales 表格 Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750
而我們要找出來所有有營(yíng)業(yè)額 (sales) 的日子。要達(dá)到這個(gè)目的,我們用以下的 SQL 語(yǔ)句:
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales 結(jié)果:
Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999
有一點(diǎn)值得注意的是,如果我們?cè)谌魏我粋€(gè) SQL 語(yǔ)句 (或是兩句都一起) 用 "SELECT DISTINCT Date" 的話,那我們會(huì)得到完全一樣的結(jié)果。
SQL Union All
UNION ALL 這個(gè)指令的目的也是要將兩個(gè) SQL 語(yǔ)句的結(jié)果合并在一起。 UNION ALL 和 UNION 不同之處在于 UNION ALL 會(huì)將每一筆符合條件的資料都列出來,無(wú)論資料值有無(wú)重復(fù)。 UNION ALL 的語(yǔ)法如下: [SQL 語(yǔ)句 1]
UNION ALL
[SQL 語(yǔ)句 2] 我們用和上一頁(yè)同樣的例子來顯示出 UNION ALL 和 UNION 的不同。同樣假設(shè)我們有以下兩個(gè)表格:
Store_Information 表格 store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Internet Sales 表格 Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750
而我們要找出有店面營(yíng)業(yè)額以及網(wǎng)絡(luò)營(yíng)業(yè)額的日子。要達(dá)到這個(gè)目的,我們用以下的SQL語(yǔ)句:
SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales 結(jié)果:
Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-08-1999
Jan-07-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999
UNION 的語(yǔ)法如下: [SQL 語(yǔ)句 1]
UNION
[SQL 語(yǔ)句 2] 假設(shè)我們有以下的兩個(gè)表格,
Store_Information 表格 store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Internet Sales 表格 Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750
而我們要找出來所有有營(yíng)業(yè)額 (sales) 的日子。要達(dá)到這個(gè)目的,我們用以下的 SQL 語(yǔ)句:
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales 結(jié)果:
Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999
有一點(diǎn)值得注意的是,如果我們?cè)谌魏我粋€(gè) SQL 語(yǔ)句 (或是兩句都一起) 用 "SELECT DISTINCT Date" 的話,那我們會(huì)得到完全一樣的結(jié)果。
SQL Union All
UNION ALL 這個(gè)指令的目的也是要將兩個(gè) SQL 語(yǔ)句的結(jié)果合并在一起。 UNION ALL 和 UNION 不同之處在于 UNION ALL 會(huì)將每一筆符合條件的資料都列出來,無(wú)論資料值有無(wú)重復(fù)。 UNION ALL 的語(yǔ)法如下: [SQL 語(yǔ)句 1]
UNION ALL
[SQL 語(yǔ)句 2] 我們用和上一頁(yè)同樣的例子來顯示出 UNION ALL 和 UNION 的不同。同樣假設(shè)我們有以下兩個(gè)表格:
Store_Information 表格 store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Internet Sales 表格 Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750
而我們要找出有店面營(yíng)業(yè)額以及網(wǎng)絡(luò)營(yíng)業(yè)額的日子。要達(dá)到這個(gè)目的,我們用以下的SQL語(yǔ)句:
SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales 結(jié)果:
Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-08-1999
Jan-07-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999
相關(guān)文章
sql server中datetime字段去除時(shí)間代碼收藏
sql下把datetime字段的時(shí)間去除的方法整理收集2008-04-04介紹PostgreSQL中的jsonb數(shù)據(jù)類型
這篇文章主要介紹了介紹PostgreSQL中的jsonb數(shù)據(jù)類型,jsonb是PostgreSQL9.4中開始內(nèi)置的類型,能夠支持GIN索引,需要的朋友可以參考下2015-04-04dataGrip顯示clickhouse時(shí)間字段不正確的問題
最近做數(shù)據(jù)遷移碰到一個(gè)問題,源數(shù)據(jù)和目的端數(shù)據(jù),導(dǎo)入的時(shí)間怎么都差8個(gè)小時(shí),本文就來介紹一下如何解決,感興趣的可以了解一下2021-09-09數(shù)據(jù)庫(kù)命名規(guī)范小結(jié)
數(shù)據(jù)庫(kù)命名規(guī)范,在實(shí)際的數(shù)據(jù)庫(kù)開發(fā)中,需要注意。2009-03-03數(shù)據(jù)庫(kù)語(yǔ)言分類DDL、DCL、DML詳解
今天小編就為大家分享一篇關(guān)于數(shù)據(jù)庫(kù)語(yǔ)言分類DDL、DCL、DML詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03DataGrip 數(shù)據(jù)導(dǎo)出與導(dǎo)入的實(shí)現(xiàn)示例
DataGrip 是一款類似于Workbench的數(shù)據(jù)庫(kù)設(shè)計(jì)工具。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09虛擬主機(jī)ACCESS轉(zhuǎn)換成MSSQL完全攻略(圖文教程)
大家都知道,ACCESS數(shù)據(jù)庫(kù)在數(shù)據(jù)量到達(dá)一定程度后,訪問速度會(huì)明顯變慢,甚至造成崩潰。目前,大多數(shù)虛擬主機(jī)服務(wù)商提供的ASP主機(jī)空間一般都同時(shí)支持MS ACCESS和MS SQL兩種類型的數(shù)據(jù)庫(kù)。2010-04-04