2014-07-16 39 views
5

Ben seçmek ve t-sql ile şöyle bir select deyimi kullanarak kayıtların bir listesini çekin:Seçme sonuç kümesinin en üstüne nasıl bir "özel" satır ekleyebilirim?

select * from [dbo].[testTable]; 

Ama set sonucu üst bir "özel" satırındaki ekleyebilir nasıl? Sonuç kümesi Örneğin

, eğer:

Name Email 
John [email protected] 
Max  [email protected] 
: o kadar benziyor ki

John [email protected] 
Max  [email protected] 

Ben set sonuca tablodan olmayan bir satır, eklemek istediğiniz

Bunu yapmak istediğim nedeni, sqlcmd aracılığıyla bir csv dosyasına aktarılacağım ve bu "özel satır" ı üstbilgi olarak eklemek istiyorum.

+1

FIY: sqlcmd, üstbilgiyi otomatik olarak – NeedAnswers

+0

@hoangnnm çıkış dosyasına dahil etme seçeneklerine sahip olabilir mi? Bir örnek aramaya çalıştım ama bunu yapmak için kullanabileceğim bir komut bulamıyorum. – Carven

cevap

6

Bu bunu yapmak için güvenli yoludur:

Uygulamada
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; 

, union all çalışacaktır:

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

Ancak, öncelikle alt sorgu önce tamamlanmasını garanti belgeleri bulamıyorum ikinci. SQL Server 'daki temel işlecin bu davranışa sahip (veya en azından son araştırdığımda SQL Server 2008'de yaptı).

0

Yukarıdakileri deneyin.

+0

Burada herhangi bir düzen yok ... herhangi bir sırada olabilir. Ayrıca, bunlar başlık için istediği sütun isimleri. – Hogan

+0

Güncelleme yaptım – 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 

UNION sonuç kümelerini sıralamak için o sütunu eklenir, böylece ilk sonuç kümesinin en üstte görünmesini sağlayın.

İlgili konular