本系列為自己學(xué)習(xí)時(shí)的筆記及心得體會(huì)蓬蝶,轉(zhuǎn)載請(qǐng)注明出處尘分。
利用UNION操作符將多條SELECT語(yǔ)句組合成一個(gè)結(jié)果集。
1丸氛、組合查詢
主要有兩種情況需要使用組合查詢:
△ 在一個(gè)查詢中從不同的表返回結(jié)構(gòu)數(shù)據(jù)
△ 在一個(gè)表執(zhí)行多個(gè)查詢培愁,按一個(gè)查詢返回?cái)?shù)據(jù)
2、創(chuàng)建組合查詢
需求:需要Illinois,Indiana和Michigan等美國(guó)幾個(gè)州的所有顧客的報(bào)表缓窜,還有不管位于哪個(gè)州的所有的Full4ALL定续。
SQL如下:
不使用UNION:
SELECT * FROM customers where cust_state IN ('IL','IN','MI')
OR cust_name = 'Fun4ALL'
使用UNION組合:
SELECT * FROM customers where cust_state IN ('IL','IN','MI')
UNION
select * FROM customers WHERE cust_name = 'Fun4ALL'
結(jié)果是一樣的:
使用UNION谍咆,需要滿足幾個(gè)條件:
△ 必須由兩條或兩條以上的SELECT語(yǔ)句組成,語(yǔ)句之間用關(guān)鍵字UNION分隔
△ 每個(gè)查詢必須包含相同的列香罐、表達(dá)式或聚集函數(shù)
△ 列數(shù)據(jù)類型必須兼容
可看到上面使用UNION是會(huì)去掉重復(fù)行的卧波,那么时肿,如果不想去掉庇茫,可使用UNION ALL。輸入輸出如下:
如果需要對(duì)組合查詢結(jié)果進(jìn)行排序螃成,可在最后加入ORDER BY 語(yǔ)句旦签。如下: