LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

sqlserver UNION / UNION ALL 合并查詢(xún)

freeflydom
2023年5月29日 10:32 本文熱度 931

演示使用如下兩張表:

create TABLE #UserInfo (ID INT IDENTITY(1,1),UserAddress NVARCHAR(50),UserName NVARCHAR(50),EntryDate DATETIME)


insert INTO #UserInfo

        ( UserAddress, UserName, EntryDate )

VALUES  ( N'北京',N'Joey', '2015-04-12'),

        ( N'上海',N'John', '2013-04-23'),

        ( N'鄭州',N'Mery', '2012-03-17'),

        ( N'深圳',N'Anna', '2014-05-07'),

        ( N'合肥',N'Dave', '2011-01-12'),

        ( N'西安',N'Alex', '2012-03-03')



create TABLE #UserOrder (ID INT IDENTITY(1,1),UserName NVARCHAR(50),Amount INT ,Price float)


insert INTO #UserOrder

        ( UserName, Amount, Price )

VALUES  ( N'Joey', 30,200),

        ( N'John', 20,120),

        ( N'Mery', 70,231),

        ( N'Anna', 10,201),

        ( N'Dave', 5,12),

        ( N'Alex', 98,1200)

合并查詢(xún)的特點(diǎn)

1.合并表中的列的個(gè)數(shù)、數(shù)據(jù)類(lèi)型必須相同或相兼容

--案例1

select UserAddress, UserName, EntryDate from #UserInfo

union


select Amount, UserName from #UserOrder

-----結(jié)果 列數(shù)個(gè)數(shù)不相等

消息 205,級(jí)別 16,狀態(tài) 1,第 33 行

使用 union、INTERSECT 或 EXCEPT 運(yùn)算符合并的所有查詢(xún)必須在其目標(biāo)列表中有相同數(shù)目的表達(dá)式。

--案例2

select UserAddress, UserName, EntryDate from #UserInfo

union


select Amount, UserName,Price from #UserOrder


------結(jié)果,數(shù)據(jù)類(lèi)型不相同或不兼容

消息 245,級(jí)別 16,狀態(tài) 1,第 33 行

在將 nvarchar 值 '北京' 轉(zhuǎn)換成數(shù)據(jù)類(lèi)型 int 時(shí)失敗。

保證數(shù)據(jù)類(lèi)型相同我們需要進(jìn)行轉(zhuǎn)換:

--案例  只是更加清晰理解union的使用方法,實(shí)際項(xiàng)目此類(lèi)轉(zhuǎn)換無(wú)意義

select UserAddress, UserName, EntryDate from #UserInfo

union


select CONVERT(NVARCHAR, Amount), UserName,CONVERT(datetime, Price) from #UserOrder

2.union 默認(rèn)去掉重復(fù)值。如果允許有重復(fù)值,請(qǐng)使用union ALL

--案例1

select UserAddress, UserName, EntryDate from #UserInfo

union


select CONVERT(NVARCHAR, Amount), UserName,CONVERT(datetime, Price) from #UserOrder


union


select UserAddress, UserName, EntryDate from #UserInfo


---結(jié)果只有12行,說(shuō)明去掉重復(fù)值了

--案例2,改為union ALL 顯示所有

select UserAddress, UserName, EntryDate from #UserInfo

union ALL


select CONVERT(NVARCHAR, Amount), UserName,CONVERT(datetime, Price) from #UserOrder


union ALL


select UserAddress, UserName, EntryDate from #UserInfo


---結(jié)果顯示18行,保留了重復(fù)數(shù)據(jù)

3.執(zhí)行順序與左向右(可 通過(guò)列的順序或空格改變結(jié)果集的排列順序)

--案例 例如將UserName 放在前面,可以比較下其他列的情況

select UserName,UserAddress,  EntryDate from #UserInfo

union 


select UserName, CONVERT(NVARCHAR, Amount), CONVERT(datetime, Price) from #UserOrder

--案例是用空格 排序,可以演示查看結(jié)果


select UserName,UserAddress,  EntryDate from #UserInfo

union 


select ' ', CONVERT(NVARCHAR, Amount), CONVERT(datetime, Price) from #UserOrder

4.可以與select INTO 一起使用,但是INTO 必須放在第一個(gè)select 語(yǔ)句中 

--案例 只能放在第一個(gè)select 中

select UserName,UserAddress,  EntryDate 


Into #insertTables  


from #UserInfo


union 


select UserName, CONVERT(NVARCHAR, Amount), CONVERT(datetime, Price) from #UserOrder


--結(jié)果顯示 插入12條數(shù)據(jù)

5.可以對(duì)合并的結(jié)果集進(jìn)行排序,但排序的ORDER BY 必須放在最后一個(gè)select 后面,所使用的列名必須是第一個(gè)select中出現(xiàn)過(guò)的

--案例 排序的ORDER BY 必須放在最后一個(gè)select 后面

select UserName,UserAddress,  EntryDate 


from #UserInfo


union 


select UserName, CONVERT(NVARCHAR, Amount), CONVERT(datetime, Price) from #UserOrder


 ORDER BY UserName


--案例 如果需要隨機(jī)獲取指定數(shù)據(jù),參照如下方法


 select* from (select TOP 2 UserName,UserAddress,  EntryDate  from #UserInfo Order By NewId()) A1

union ALL

select* from (select TOP 2 UserName, CONVERT(NVARCHAR, Amount) as Amount, CONVERT(datetime, Price)as Price from #UserOrder  Order By NewId()) A2

————————————————————

https://www.cnblogs.com/ankeyliu/p/11340381.html


該文章在 2023/5/29 10:39:17 編輯過(guò)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日韩精品一区二区三区影院 | 在线高清一级欧美精品 | 亚洲国产日韩欧美综合久久 | 日本成人手机在线天天看片 | 一区二区無碼在線觀看 | 中文字幕亚洲无线码在线中 |