2010-02-25 14 views
5

Điều này có khả thi không? Sử dụng SQL Server 2005 .......T-SQL UNION Trên 3 Bàn?

SELECT * 
FROM Data0304 
UNION 
SELECT * 
FROM Data0506 
UNION 
SELECT * 
FROM Data0708 
+2

Bạn thử chạy này chưa? Bất kỳ vấn đề với nó? Cái gì không hiệu quả? – shahkalpesh

Trả lời

7

Chừng nào các cột đều giống nhau trong tất cả ba bảng, nhưng bạn có thể muốn sử dụng UNION ALL để đảm bảo bản sao được bao gồm.

+2

Và nên chỉ định tên cột thay vì sử dụng '*'. – RedFilter

4

Khi bạn nói

cột cùng

đó có nghĩa là,

số cột và kiểu dữ liệu và độ dài của họ và thứ tự của

phải giống nhau.

UNION

sẽ bao gồm bản ghi trùng lặp một lần duy nhất trong kết quả và

UNION ALL

sẽ bao gồm tất cả các bản ghi trùng lặp.

+0

Cảm ơn bạn, đây chỉ là những gì tôi cần. Việc làm rõ về "các cột giống nhau" rất hữu ích. – ShiningLight

1

để bao gồm hồ sơ trùng lặp bạn phải sử dụng UNION ALL thay vì UNION

SELECT * 
FROM Data0304 
UNION ALL 
SELECT * 
FROM Data0506 
UNION ALL 
SELECT * 
FROM Data0708