2016-08-16 76 views
2

我有表有兩列,他們都包含整數值,看起來像這樣:組合兩個SQL列合併到一列

DocumentUpId RelatedDocId 
31608768  31624333 
31608768  31624334 
31618133  31618117 

,我試圖將它們合併到像這樣的單個列:

DocumentUpId  
31608768   
31608768   
31618133  
31624333 
31624334 
31624334 

我已經試過這樣:

select rel_CTE.DocumentUpId + rel_CTE.DocumentDownId as 'RelatedDocId' 
into #temprelations 
from RelationsCTE rel_CTE 

但它給我串連值(以及總和在這種情況下),所以我可能嗎?

回答

9

UNION ALL

select rel_CTE.DocumentUpId as 'RelatedDocId' from RelationsCTE 
union all 
select rel_CTE.DocumentDownId from RelationsCTE 
4

嘗試這樣,

SELECT DocumentUpId as DocumentUpId 
FROM RelationsCTE 

UNION ALL 

SELECT DocumentDownId as DocumentUpId 
FROM RelationsCTE 
+5

'union'不會給出正確的結果,因爲它會過濾重複的值。 – sstan

+1

你是對的我編輯我的帖子 – StackUser

+0

不真正理解在合理的時間框架內容易糾正的問題的投票權,這有什麼意義?我有+1 +1 – Tanner

0

嘗試使用CROSS -APPLY :)一些不同的東西。

SELECT [RelatedDocId] 
FROM RelationsCTE 
    CROSS APPLY (VALUES(DocumentUpId), 
        (DocumentDownId)) V([RelatedDocId])