在SQL中,`UNION`操作符用於合併兩個或多個SELECT語句的結果集。使用`UNION`時,需要注意以下幾點:
列數量和數據類型。所有SELECT語句中的列數必須相同,並且列的數據類型應兼容,即可以隱式地轉換為對方的數據類型。
列順序。每個SELECT語句中的列順序必須相同。
重複值處理。默認情況下,`UNION`操作符會去除重複的值。如果希望包含重複值,可以使用`UNION ALL`。
`UNION`和`UNION ALL`的語法如下:
`SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2`。使用`UNION`時,結果集中的列名等於第一個SELECT語句中的列名。
`SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2`。使用`UNION ALL`時,結果集中會包含重複的行。
例如,假設我們要從兩個表中查詢所有營業額(sales)的日子,可以使用以下查詢語句:
`SELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales`。這個查詢結果會去除重複的日期,因為默認情況下`UNION`會去除重複的值。
`SELECT Date FROM Store_Information UNION ALL SELECT Date FROM Internet_Sales`。這個查詢結果會包含重複的日期,因為使用了`UNION ALL`。
在實際套用中,根據需求選擇使用`UNION`或`UNION ALL`。