set @sql=null;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(CASE t.type WHEN ''',
t.type,'''',
' THEN t.id ',' else 0 END ) ',t.type
)
) INTO @sql
FROM test1 t;
set @sql =CONCAT('SELECT ',@sql,' from test1 t');
PREPARE stmt from @sql;
EXECUTE stmt;mysql中行变列
本文介绍了一个使用MySQL构建复杂SQL查询的例子。通过动态拼接SQL语句实现对特定数据的聚合查询,具体展示了如何利用CASE WHEN语句结合GROUP_CONCAT进行多条件求和,并通过PREPARE和EXECUTE实现动态SQL的执行。

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



