Таблица SQL Server строк CSV в таблицу элементов разделенных строк

У меня есть:

(1, 'a,b,c,d,e')
(2, 'f,g,h,i')

Мне нужна таблица:

(1, 'a')
(1, 'b')
...
(2, 'h')
(2, 'i')

Таблица строк CSV должна быть разбита на таблицу номер строки - элемент строки. У меня есть функция split(@string, @delimiter), но сделать это с помощью этой функции, похоже, невозможно, потому что она говорит, что это не встроенная функция. Мне нужен совет, как мне решить мою проблему.

Отличается тем, что функция split возвращает таблицу элементов вместо скалярного значения


person user3162968    schedule 07.02.2016    source источник
comment
Не хочу вам говорить - но пороблема начинается с того, что у вас НЕТ CSV. Определение CSV довольно строгое в использовании COMMATA в качестве разделителей полей. ТОЛЬКО. Без скобок. Работа со строками в TSQL неудобна. Открыто для некоторого С# (который на самом деле может работать на SQL Server)...?   -  person TomTom    schedule 07.02.2016
comment
Вам нужно называть это как dbo.split, а не просто split. Предполагая, что это в схеме dbo,   -  person Martin Smith    schedule 07.02.2016
comment
@TomTom Я полагаю, что скобки обозначают строки и содержат несколько столбцов. Как и в синтаксисе конструктора строк.   -  person Martin Smith    schedule 07.02.2016
comment
Или обман этого, возможно, stackoverflow.com/q/763669/73226   -  person Martin Smith    schedule 07.02.2016
comment
@MartinSmith Вполне может быть, но тогда это не CSV. И поэтому любой метод, написанный для работы с CSV, не будет работать и предполагает, что они являются полезной нагрузкой.   -  person TomTom    schedule 07.02.2016
comment
CROSS APPLY здесь хорошо, и это решило мою проблему, спасибо за ссылку на этот вопрос Мартин Смит   -  person user3162968    schedule 07.02.2016