Это возможно при использовании хранимой процедуры, которая разбивает строку, создает (временную) таблицу, сохраняет результат в указанной таблице и возвращает содержимое таблицы, используя оператор SELECT
.
Однако маловероятно, что это эффективный подход - для записи потребуется много времени, а время выполнения не будет хорошим, создавая узкое место, если вы передадите ему много данныхили если вызывается повторно.
Более простой подход - и маршрут, по которому я буду следовать, - это сделать это на вашем любимом языке программирования и затем сохранить результат в базе данных.В качестве альтернативы вывод вашего кода может быть запросом с UNION
, который вернет желаемую структуру данных.По сути, задача состоит в том, чтобы транспонировать двумерный массив и структурировать вывод.Если он не слишком велик, он будет быстрым и эффективным и может использоваться в качестве подзапроса, если вам нужно объединить его с другими данными.
Чтобы дать вам и идею, результат может быть следующим:
SELECT 6 AS id, 0.4444444444444445 AS value
UNION ALL SELECT 10, 53.0
UNION ALL SELECT 11,7.555555555555555
UNION ALL SELECT 16, 5.111111111111111
На практике:
SELECT
sub.id,
sub.value,
info.someFieldFromAnotherTable
FROM
(SELECT 6 AS id, 0.4444444444444445 AS value
UNION ALL SELECT 10, 53.0
UNION ALL SELECT 11,7.555555555555555
UNION ALL SELECT 16, 5.111111111111111
) AS sub
INNER JOIN otherInfoTable info ON info.id = sub.id