2014-07-16 15 views
5

tôi có thể chọn và kéo ra một danh sách các bản ghi bằng cách sử dụng một tuyên bố chọn như vậy với t-sql:Làm cách nào để thêm hàng "tùy chỉnh" vào đầu bộ kết quả được chọn?

select * from [dbo].[testTable]; 

Nhưng làm thế nào tôi có thể thêm vào một "tùy chỉnh" hàng để phía trên cùng của kết quả thiết lập?

Ví dụ, nếu đặt kết quả là:

John [email protected] 
Max  [email protected] 

Tôi muốn thêm một hàng, mà không phải là từ bảng, để tập hợp kết quả để nó trông giống như vậy:

Name Email 
John [email protected] 
Max  [email protected] 

Lý do tôi muốn làm điều này là vì tôi sẽ xuất tệp này thành tệp csv thông qua sqlcmd và tôi muốn thêm vào "hàng tùy chỉnh" đó làm tiêu đề.

+1

FIY: sqlcmd đã có các tùy chọn để bao gồm tiêu đề tự động vào tệp xuất – NeedAnswers

+0

@hoangnnm Tôi có thể? Tôi đã cố gắng để tìm kiếm một ví dụ nhưng tôi không thể tìm thấy một lệnh mà tôi có thể sử dụng để làm điều này. – Carven

Trả lời

6

Đây là cách an toàn để làm điều này:

select name, email 
from ((select 'name' as name, 'email' as email, 1 as which 
    ) union all 
     (select name, email, 2 as which from [dbo].[testTable] 
    ) 
    ) t 
order by which; 

Trên thực tế, union all sẽ làm việc:

 select 'name' as name, 'email' as email 
     union all 
     select name, email from [dbo].[testTable] 

Tuy nhiên, tôi không thể tìm thấy tài liệu mà đảm bảo rằng các subquery đầu tiên được hoàn thành trước thứ hai. Toán tử cơ bản trong SQL Server hiện có hành vi này (hoặc ít nhất nó đã làm trong SQL Server 2008 khi tôi điều tra lần cuối nó).

0
SELECT * FROM 
(SELECT 'Name' as name, 'Email' as email, 1 'rank' 
union 
SELECT name, email,3 'rank')a 
ORDER BY a.rank,a.name 

Hãy thử ở trên.

+0

Không có đơn đặt hàng ở đây ... nó có thể theo bất kỳ thứ tự nào. Ngoài ra, đó là những tên cột mà anh ta muốn cho tiêu đề. – Hogan

+0

Tôi đã cập nhật – TGH

3
SELECT name, email FROM (
    SELECT 'Name' AS Name, 'Email' AS Email, 1 AS o 
    UNION ALL 
    SELECT name, email, 2 AS o FROM testTable 
) t 
ORDER BY o, name 

Cột o được thêm vào thứ tự các bộ kết quả của UNION để bạn đảm bảo tập hợp kết quả đầu tiên xuất hiện ở trên cùng.

Các vấn đề liên quan