2017-02-14 75 views
0

我的表結構是這樣的:如何在SQL Server中的select查詢的每一行中添加列名?

Domain Label1 Label2 ... LabelN 
foo.com NULL  X  ... NULL 
bar.com  Y   Z  ... NULL 
. 
. 
xyz.com NULL  NULL ...  M 

我所要的輸出是這樣的(以文本格式):

foo.com,Label2:X  
bar.com,Label1:Y|Label2:Z 
. 
. 
xyz.com,Label3:M  

基本上,我想刪除NULL條目以及我希望列標籤出現在最終輸出中。我試圖使用XML路徑,但它將所有行連接在一起,並不刪除NULL。

有人試圖解決這個問題嗎?

+0

我建議使用動態SQL並從sys表中獲取列名 – Petaflop

+0

我可以從sys表中獲取列名,但是如何將它們連接到每一行並且不包括具有NULL值的列在桌子上? SQL Server有沒有像Python中的https://docs.python.org/3/library/functions.html#zip操作? –

回答

1

我不明白你如何能夠通過在單個查詢中加入sys表來獲得你想要的結果。它可能會在多步驟存儲過程中完成,但它會非常難看,並且不是最乾淨的解決方案。我不認爲你真的需要,因爲你的標籤列是固定模式的一部分。

我認爲你需要從這個表中執行一個簡單的選擇,然後遍歷代碼中的結果來構建你每行單行的文本。您當時可以在標籤名稱中拼接。

相關問題