-
- 示例表。 declare @tb table (a varchar(10),b varchar(10),c varchar(10))
insert into @tb
select 'aa','b1','19:01' union allselect 'aa','b1','19:02' union allselect 'ab','b2','19:
03' union allselect 'ac','b3','19:04'
查詢語句。 select ,,from @tb t1,(select a,max(c) c from @tb group by a) t2
where and
order by
結果。 a b c
aa b1 19:02
ab b2 19:03
ac b3 19:04
受影響的行數為 3)。
-
在本節中,我們將學習如何使用 union 運算子將多個 select 語句組合成乙個結果集返回,即復合查詢。 下面是使用組合查詢的兩種方案:
union 運算子用於組合多個 SQL 語句
要查詢,您只需要在每個部分中選擇
在語句之間放置關鍵字聯合
例如,第乙個 SQL
查詢狀態為 IL IN 和 MI 的客戶的客戶資訊:
結果:第二個 SQL
然後搜尋名稱為 fun4all 的客戶:
結果:將上面的兩個 SQL 語句合併
即: 執行結果:
以上兩項是精選的
該語句使用聯合
關鍵字分離、並集
指示 DBMS
執行這兩個選擇
語句,並將輸出合併到單個查詢結果中。
並且,從組合查詢的結果中,我們發現聯合
這不僅僅是將兩個查詢結果拼接在一起的問題,而是對組合結果進行重複資料刪除。 例如:fun4all jim jones 在兩個 sqls 中
,但組合結果中只有乙個。
當然,您可以使用包含多個位置的地方
條件 SQL
實現相同的搜尋目標:
上面的練習工會
,我們發現聯合
對查詢結果進行重複資料刪除,並自動取消重複的行。 如果要返回所有行,可以使用“全部聯合”
使用“合併所有組合”執行查詢結果:
使用聯合所有 DBMS 不會取消重複行,因此此處返回 5 條記錄。
select
語句的輸出按以下順序排序
第。 但是,在聯合的情況下
合併查詢時,只能使用乙個 order by
子句,該子句必須在最後乙個選擇中
陳述。 SQL 下面的
到上面的工會
返回結果按順序排序:
對搜尋結果進行排序:
在本節中,我們學習了如何使用聯合
合併選擇
宣告,利用聯合
您可以選擇多個專案
語句查詢的結果將作為組合查詢返回,並自動從結果集中刪除重複的行。
使用 union 大大簡化了複雜的 where 子句,並且在合併多個工作表時 union 也很有用,即使存在列名不匹配的表,在這種情況下,union 可以與別名組合以檢索結果集。
執行以下 SQL 語句:
updateTable 1setb=(selectTableTableTableTableTableTableTableTableT >>>More