我要查询的数据如下 ,但是前台要的数据和我给的不一样 它要的是中括号里面的那种,我要把数据拼接起来,用到了游标。

BEGIN
DECLARE _statistics VARCHAR(1024);
DECLARE _name VARCHAR(1024);
DECLARE _count VARCHAR(1024);
-- 创建结束标志变量
declare done int default false;
-- 创建游标填充,想要什么放什么
declare cur cursor for SELECT processName, SUM(runningTime) FROM t_emm_process GROUP BY processName ORDER BY SUM(runningTime) DESC LIMIT 0,5;
-- 指定游标循环结束时的返回值
declare continue HANDLER for not found set done = true;
SET _statistics = '';
OPEN cur;
FETCH cur INTO _name, _count;
WHILE(NOT done) DO
SET _statistics = CONCAT('{"',_name,'":"', _count, '"}', IF(_statistics = '', '', ','), _statistics);
FETCH cur INTO _name, _count;
END WHILE;
CLOSE cur;
SET _statistics = CONCAT('[', _statistics, ']');
SELECT _statistics;
END

这篇博客介绍了如何在SQL中使用游标来处理数据,并将查询结果转化为JSON格式。通过声明变量、定义游标和处理循环,作者展示了如何聚合数据并构建JSON字符串,最终将数据包裹在中括号中,满足特定的输出需求。
2477

被折叠的 条评论
为什么被折叠?



