Я стараюсь изо всех сил избегать использования курсоров. В переменной nvarchar есть список столбцов через запятую, который выглядит следующим образом:
@columnList = 'col1,col2,col5'
Есть таблица с множеством столбцов varchar:
myTable: [col1],[col2],[col3],[col4],[col5],[col6],[col7]
Вот как я выбираю данные, используя динамический sql:
exec ('select ' + @columnList + ' from myTable')
Этот запрос возвращает следующие результаты:
[col1], [col2] , [col5]
null , "txt1" , null
"txt2", null , null
null , "txt3" , "txt4"
Вот что мне нужно получить:
@resultList = "txt1,txt2,txt3,txt4"
Как выбрать строку через запятую, содержащую только ненулевые значения? Я знаю, как преобразовать таблицу в строку через запятую, поэтому получаю что-то вроде:
[column]
"txt1"
"txt2"
"txt3"
"txt4"
Тоже хорошо. Какие-либо предложения? Не стесняйтесь предлагать базовый подход, я не ожидаю, что вы напишите реальный код для меня.