2017-02-14 5 views
0

Моя структура таблицы что-то вроде этого:Как добавить имена столбцов в каждой строке из запроса select в SQL Server?

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  

В принципе, я хочу, чтобы удалить пустые записи, а также Я хочу, чтобы метки столбцов присутствовали в конечном выпуске. Я попытался использовать XML-путь для него, но он объединяет все строки и не удаляет NULL.

Кто-нибудь пытался это решить?

+0

Я бы предложил использовать динамический SQL и получить имена столбцов из таблиц sys – Petaflop

+0

Я могу получить имена столбцов из sys-таблиц, но как я могу объединить их в каждую строку и не включать столбцы со значениями NULL в таблице? Есть ли в SQL Server что-то вроде https://docs.python.org/3/library/functions.html#zip операции в python? –

ответ

1

Я не понимаю, как вы могли бы это сделать, присоединившись к таблице sys в одном запросе и получив нужные результаты. Вероятно, это можно было бы сделать в многошаговой хранимой процедуре, но это было бы крайне уродливым, а не самым чистым решением. И я не думаю, что вам действительно нужно, потому что ваши столбцы ярлыков являются частью фиксированной схемы.

Я думаю, вам нужно выполнить простой выбор из этой таблицы, а затем выполнить итерацию результатов в коде, чтобы создать одну строку текста в строке. В то же время вы можете просто указать имена ярлыков.