博客
关于我
python-week5
阅读量:796 次
发布时间:2023-03-08

本文共 1261 字,大约阅读时间需要 4 分钟。

流程执行与输入控制优化

流程执行逻辑改进说明

【流程执行功能描述】该流程设计用于根据输入参数按照预定流程执行,主要流程包括A→B→C→D→E→F。系统将用户输入存储到列表中,用于判断下一步输入是否符合流程逻辑。具体实现如下:

  • 输入处理流程
    • 用户输入需符合流程列表中的字符(A、B、C、D、E、F)
    • 输入为空或不在流程列表中时,系统提示重新输入
    • 输入为"quit"时,系统退出程序
    1. 流程控制逻辑
      • 当前流程状态通过input_list列表记录
      • 系统根据上一次输入状态判断下一步流程
      • 当前流程满足且输入为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构建实现:

    2. 定义临时SQL语句SET @sql = NULL;SELECTGROUP_CONCAT(DISTINCTCONCAT('MAX(IF(a.Subject = ''', a.Subject, ''',a.Score, 0)) AS ''', a.Subject, '''')) INTO @sqlFROMmysql.test_a a;

    3. 生成最终查询SET @sql = CONCAT('SELECT Name, ', @sql, ' FROM test_a a GROUP BY a.Name');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;

    4. 【技术说明】

      • 以上实现均基于MySQL数据库环境
      • 注意test_a表前后别名一致
      • 各实现方式均可满足需求,选择依据具体应用场景

    转载地址:http://bzlfk.baihongyu.com/

    你可能感兴趣的文章