UNION指令如下:
SELECT MAX(價錢) FROM 匠匠
SELECT 品名 FROM 巨巨
UNION
SELECT 品名 FROM 匠匠
--JOIN是綜向的集合,UNION是橫向的集合
--特性是2邊重複的,會被排除
SELECT 品名 FROM 巨巨
UNION ALL
SELECT 品名 FROM 匠匠
--將重複的列出來
-------------------------------------------------------------------------
--算出所有男、女的職位有多少人(並統計總人數)
SELECT 稱呼,職稱,COUNT(*) AS 人數
FROM 員工
GROUP BY GROUPING SETS((稱呼,職稱),())
--這是用UNION ALL全結合,結果同上
SELECT 稱呼,職稱,COUNT(*) AS 人數
FROM 員工
GROUP BY 稱呼,職稱
UNION ALL
SELECT NULL,NULL,COUNT(*) AS 人數 FROM 員工
-------------------------------------------------------------------------
下面是用子查詢放在條件的使用:
--找出巨巨 表中,比匠匠 表最大的價錢還要大的產品:
SELECT * FROM 巨巨
WHERE 價錢>=123.79
--↓ ↓ ↓ ↓ ↓
SELECT * FROM 巨巨
WHERE 價錢>=(SELECT MAX(價錢) FROM 匠匠)
-------------------------------------------------------------------------
--找出 巨巨 表中與 匠匠 表重複的產品
SELECT * FROM 巨巨
WHERE 品名 IN(SELECT 品名 FROM 匠匠)
--找出 巨巨 表中獨佔的產品
SELECT * FROM 巨巨
WHERE 品名 NOT IN(SELECT 品名 FROM 匠匠)
--找出 巨巨 表中與匠匠 表重複的產品(用EXISTS,且該子查詢不能獨立)
SELECT * FROM 巨巨
WHERE EXISTS (SELECT * FROM 匠匠 WHERE 品名=巨巨.品名)
-------------------------------------------------------------------------
留言
張貼留言