У меня есть две таблицы, первая, dbo.QuestionaireResponse, включает столбцы PersonID (int не null), ApplicationID (int не null) и RaceID. PersonID - это базовый столбец идентификатора, но RaceIDs - это varchar (255), который содержит строки идентификаторов с разделителями-запятыми (плохой дизайн, который я знаю). Другая таблица представляет собой таблицу типов dbo.Race с двумя столбцами: RaceID (int identity) и RaceDescription (какой-то varchar). Мне нужно вывести таблицу в одном из двух следующих форматов:
- PersonID, RaceDescription как отношение один ко многим
- PersonID, RaceDescriptions (строка значений, разделенных запятыми, из столбца описания расы)
В своем исследовании я наткнулся на этот пост http://ole.michelsen.dk/blog/split-string-to-table-using-transact-sql/, но это не совсем подходит для проблемы, потому что разделение должно выполняться для каждой записи в столбце.
В итоге я передал таблицу типов в веб-службу в дополнение к данным, но мне любопытно, есть ли другое жизнеспособное решение. В этом случае важна производительность, хотя в таблице типов есть небольшое количество записей.
Любые предложения о том, как это сделать на сервере sql?