91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

sqlserver UNION / UNION ALL 合并查詢

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

演示使用如下兩張表:

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)

合并查詢的特點

1.合并表中的列的個數、數據類型必須相同或相兼容

--案例1

select UserAddress, UserName, EntryDate from #UserInfo

union


select Amount, UserName from #UserOrder

-----結果 列數個數不相等

消息 205,級別 16,狀態 1,第 33 行

使用 union、INTERSECT 或 EXCEPT 運算符合并的所有查詢必須在其目標列表中有相同數目的表達式。

--案例2

select UserAddress, UserName, EntryDate from #UserInfo

union


select Amount, UserName,Price from #UserOrder


------結果,數據類型不相同或不兼容

消息 245,級別 16,狀態 1,第 33 行

在將 nvarchar 值 '北京' 轉換成數據類型 int 時失敗。

保證數據類型相同我們需要進行轉換:

--案例  只是更加清晰理解union的使用方法,實際項目此類轉換無意義

select UserAddress, UserName, EntryDate from #UserInfo

union


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

2.union 默認去掉重復值。如果允許有重復值,請使用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


---結果只有12行,說明去掉重復值了

--案例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


---結果顯示18行,保留了重復數據

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

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

select UserName,UserAddress,  EntryDate from #UserInfo

union 


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

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


select UserName,UserAddress,  EntryDate from #UserInfo

union 


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

4.可以與select INTO 一起使用,但是INTO 必須放在第一個select 語句中 

--案例 只能放在第一個select 中

select UserName,UserAddress,  EntryDate 


Into #insertTables  


from #UserInfo


union 


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


--結果顯示 插入12條數據

5.可以對合并的結果集進行排序,但排序的ORDER BY 必須放在最后一個select 后面,所使用的列名必須是第一個select中出現過的

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

select UserName,UserAddress,  EntryDate 


from #UserInfo


union 


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


 ORDER BY UserName


--案例 如果需要隨機獲取指定數據,參照如下方法


 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 編輯過
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产不卡 | 91精品国产综 | 国产精品一二三区 | 91影视网| 中文字幕婷婷在 | 日韩电影网 | 国产丝袜一区二 | 国产亚洲精爱浪 | 成人bv在线观看 | 91乳母| 日本免费综 | 欧美在线观看视 | 精品在线97| 国产区精品 | 欧美在线a | 国产又粗又大视频 | 理论片国产在 | 成人九九九 | 另类一区二区 | 日韩精品影片 | 国产精品综合社区 | 91福利群| 天美麻花星空免费 | 精品在线中 | 丝袜美腿精品 | 福利秀视频在线播放 | 精品乱伦影视 | 日韩高清在线播放不 | 无码精品亚 | 国产91福利导航 | 国产一区免费观 | 91视频首页 | 日韩国产精品一区 | 91国产福利| 区二区视频免费看 | 日产国产一区二区 | 国产噜噜噜精品免费 | 国产精品视频网站 | 国语对白刺激 | 欧美性生 | 福利小视频91 |