在 SQL 中,UNION
函數用于合并兩個或多個 SELECT
語句的結果集
確保列數相同:每個 SELECT
語句返回的列數必須相同。如果需要添加或刪除列,可以使用虛擬列(例如 NULL AS column_name
)進行填充。
轉換數據類型:為了確保數據類型一致,你需要在 SELECT
語句中顯式地將列轉換為相同的數據類型。例如,如果你有兩個表,一個包含整數類型的列,另一個包含字符串類型的列,你可以使用 CAST()
或 CONVERT()
函數將整數列轉換為字符串類型。
下面是一個示例,展示了如何在 SQL Server 中使用 UNION
合并兩個具有不同數據類型的表:
-- 創建兩個具有不同數據類型的表
CREATE TABLE Table1 (id INT, value INT);
CREATE TABLE Table2 (id INT, value VARCHAR(50));
-- 向表中插入數據
INSERT INTO Table1 (id, value) VALUES (1, 42);
INSERT INTO Table2 (id, value) VALUES (2, 'Hello');
-- 使用 UNION 合并兩個表,并將整數列轉換為字符串類型
SELECT id, CAST(value AS VARCHAR(50)) AS value FROM Table1
UNION ALL
SELECT id, value FROM Table2;
這將返回以下結果集:
id | value
---------
1 | 42
2 | Hello
請注意,我們使用了 CAST()
函數將 Table1
中的 value
列從整數類型轉換為字符串類型。這樣,UNION
操作就可以正常工作,因為現在兩個 SELECT
語句返回的列具有相同的數據類型。