我想分割如下字符串:[[6, 10, 11, 16], [0.4444444444444445, 53.0, 7.555555555555555, 5.111111111111111]]
输出
id value
---------------------------
6 0.4444444444444445
10 53.0
11 7.555555555555555
16 5.111111111111111
字符串中'id'的数量不同,但是'id'总是有值。
答案 0 :(得分:0)
这可以通过使用存储过程来完成,该存储过程将字符串切碎,创建(临时)表,将结果存储在所述表中并使用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