2016-01-12 48 views
0

我試圖完成一些簡單的事情,但不能直接思考。我有兩行不同的列可以有不同的值的情況。但如果是這樣的話,而不是顯示這兩個值只有1行,我需要顯示2行,每個1列值..例如。如何根據2個不同的列值將一行分成兩部分

ID Col1   col2 col3 col4    

46054 2011W3974 164505 1 2 

58765 2014W3777 275908 1 NULL 

52311 2013W1877 247047 1 NULL 

63032 2015W3317 295279 1 NULL 

57552 2014W2813 274810 1 NULL 

44584 2011W2622 173985 1 2 

這需要分成2排爲行1和6成2行象下面這樣:

46054 2011W3974 164505 1 NULL 
46054 2011W3974 164505 NULL 2 
58765 2014W3777 275908 1 NULL 
52311 2013W1877 247047 1 NULL 
63032 2015W3317 295279 1 NULL 
57552 2014W2813 274810 1 NULL 
44584 2011W2622 173985 1 NULL 
44584 2011W2622 173985 NULL 2 

什麼是最好的方式做到這一點。我看了SPLIT XML函數,但我不認爲這會有幫助。我也玩過排名功能,但由於這是2列,我不認爲這也可以。請建議

感謝, RV

回答

2

我只是正常工會一起:

SELECT Id, Col1, Col2, Col3, NULL AS Col4 
FROM <Your Table> 
WHERE col4 is NULL 

UNION 

SELECT Id, Col1, Col2, NULL, Col4 
FROM <Your Table> 
WHERE Col4 = 2 
+0

謝謝你的回答。這對我很好。 – rvphx

0

只需使用聯盟不聯盟所有。

SELECT Id, Col1, Col2, Col3, NULL AS Col4 
FROM YourTable 
WHERE isnull(Col4 , 0) = 0 

UNION 

SELECT Id, Col1, Col2, NULL as Col3, Col4 
FROM YourTable 
WHERE isnull(Col3 , 0) = 0 
相關問題