Đối với giải pháp MySQL, bạn có thể sử dụng UNION
để đặt tên của tất cả các cột trong thuật ngữ truy vấn không hàng, và sau đó truy vấn một thứ gì đó phức tạp hơn:
SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...
Chỉ thuật ngữ truy vấn đầu tiên của UNION xác định tên cột của toàn bộ truy vấn. Tên cột (hoặc thiếu chúng) trong các thuật ngữ truy vấn tiếp theo không ảnh hưởng đến tên cột cuối cùng.
Bạn cần biết số trong số các cột, nhưng sẽ khá dễ dàng để giữ hai thuật ngữ truy vấn riêng biệt. Theo như tôi biết, nó hoạt động trên cả Oracle và MySQL (tuy nhiên, tôi mới chỉ thử nghiệm nó trong MySQL, không phải trong Oracle).