2016-05-19 33 views
2

我使用SQL Server 2014和我有一個運行良好下面的T-SQL查詢:如何將具有特定值的行添加到我的T-SQL查詢的輸出中?

SELECT Id, Name from TravelAgency 

此查詢的輸出的最後一行如下所示:

Id  Name 
---  ---- 
---  ---- 
715  AB Ltd 

我想「手工」追加下面的值到結果集此查詢:(999,XY公司),以便運行體改查詢給我下面的結果:

Id  Name 
---  ---- 
---  ---- 
715  AB Ltd 
999  XY Ltd 

爲了簡化查詢,請從TravelAgency表中提取請求的數據,並在輸出結尾處添加指定的值。我需要在查詢中添加這些特定值,但我無法弄清楚如何去做!

回答

4

使用UNION ALL:

select id, name from xxx -- is your query 
union all 
select 999 as id, 'XY Ltd' as name 

編輯: 除了@ThorstenKettner的評論:如果ID不是nummeric或f或者你不能使用它的任何理由,那麼你可以這樣做:

select ID, Name 
from 
(
    select 1 as SpecialSort, ID, Name from xxx -- is your query 
    union all 
    select 2 as SpecialSort, 999 as ID, 'XY Ltd' as Name 
) AllData 
order by SpecialSort asc -- like this your manually added row will appear at the end 
+2

如果您希望額外的記錄保證位於結果集的末尾,請添加適當的'ORDER BY'子句 - 可能只是'ORDER BY id',前提是所有實際ID都小於999。 –

3

使用UNION將您的必需條目和返回結果集一起附加。它可以避免如果999 XY Ltd條目已經存在。

SELECT Id, Name FROM TravelAgency 
UNION 
SELECT 999 AS [Id], 'XY Ltd' AS [Name] 

如果999 XY Ltd已經返回形式的結果集,讓你可以使用UNION ALL重複項,並確保999 XY Ltd在去年創紀錄的ORDER BY

SELECT Id, Name FROM (
    SELECT Id, Name FROM TravelAgency 
    UNION ALL 
    SELECT 999 AS [Id], 'XY Ltd' AS [Name] 
) AS T 
ORDER BY Id 
+1

你不需要一個外部查詢來應用'ORDER BY'。只需將'ORDER BY'子句添加到原始查詢中即可。 –

相關問題