Какую версию SQL вы используете?
Функция разделения предназначена для разделения строки текста, но то, что вы запрашиваете, является изменением формата самой таблицы.
В таблице есть кортеж id = 3, name = c, d, e, f, total = 15.
Если вы хотите id = 3, name = c и т. Д., Вы должны изменить данные.
Из того, как ваш вопрос сформулирован, это означает, что вы хотите, чтобы данные представлялись по-другому, но идентификатор является определяющим столбцом, который различает строки в базе данных.
Вы можете автоматически генерировать новую таблицу, и в этом случае оператор split будет полезен для того, чтобы вывести каждый элемент из вашей записи, разделенной запятой.
Как только у вас есть этот список элементов, если ваше поле идентификатора является полем идентификатора (автоинкремент), вы можете запустить инструкцию insert для каждого элемента.
Возможно, вы сможете получить нужный результат, используя внутренний выбор, который разбивает список значений, разделенных запятыми, но вам понадобится некоторый процедурный SQL (или T-SQL ... вы не укажите свой SQL-сервер), чтобы перебирать значения и вставлять их в новую таблицу. Если вы идете по этому маршруту, значения идентификатора должны быть выброшены, и вы будете рассматривать список как просто необработанный набор данных.
РЕДАКТИРОВАТЬ: Пример, представленный «Не имеет отображаемого имени» примерно так же близко, как вы собираетесь получить с данными в том виде, в котором он находится. Идентификаторы имен «c», «d», «e» и «f» будут равны 3, но ваш формат будет очень близок.
Что РСУБД вы используете? – Ram
Каков был код, который вы пробовали? – kojow7
Почему идентификатор застрял на '5' ?, что произойдет, если была строка с идентификатором' 4'? – Lamak