本文共 1261 字,大约阅读时间需要 4 分钟。
流程执行与输入控制优化
流程执行逻辑改进说明
【流程执行功能描述】该流程设计用于根据输入参数按照预定流程执行,主要流程包括A→B→C→D→E→F。系统将用户输入存储到列表中,用于判断下一步输入是否符合流程逻辑。具体实现如下:
【数据库题目解答】
数据库转列问题解决方案
【实现方式1:静态max值计算】
查询语句实现:
SELECTName,max(CASE WHEN SUBJECT = '语文' THEN Score ELSE 0 END) AS 语文,max(CASE WHEN SUBJECT = '数学' THEN Score ELSE 0 END) AS 数学,max(CASE WHEN SUBJECT = '英语' THEN Score ELSE 0 END) AS 英语,max(CASE WHEN SUBJECT = '生物' THEN Score ELSE 0 END) AS 生物FROMtest_aGROUP BYNAME;
【实现方式2:静态sum值计算】
查询语句实现:
SELECTName,sum(CASE WHEN SUBJECT = '语文' THEN Score ELSE 0 END) AS 语文,sum(CASE WHEN SUBJECT = '数学' THEN Score ELSE 0 END) AS 数学,sum(CASE WHEN SUBJECT = '英语' THEN Score ELSE 0 END) AS 英语,sum(CASE WHEN SUBJECT = '生物' THEN Score ELSE 0 END) AS 生物FROMtest_aGROUP BYNAME;
【实现方式3:动态查询构建】
动态SQL构建实现:
定义临时SQL语句SET @sql = NULL;SELECTGROUP_CONCAT(DISTINCTCONCAT('MAX(IF(a.Subject = ''', a.Subject, ''',a.Score, 0)) AS ''', a.Subject, '''')) INTO @sqlFROMmysql.test_a a;
生成最终查询SET @sql = CONCAT('SELECT Name, ', @sql, ' FROM test_a a GROUP BY a.Name');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;
【技术说明】
转载地址:http://bzlfk.baihongyu.com/