打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
mysql动态列存储过程
CREATE PROCEDURE `GetResultShow`(
evaluateId varchar(100)
)
begin
SET SESSION group_concat_max_len = 102400000;
 -- 保存生成的动态列
-- >>>>>>>>>>>>>>>>>>>>>>>
  DELETE from t_indexname_evaluate t where t.evaluate_id=evaluateId;
    insert into t_indexname_evaluate
    SELECT
          c.INDEX_NAME as index_name,
                    evaluateId as evaluate_id,
          CONCAT('a',rownum) as index_name_num
    FROM
        (select t.*,@rownum:=@rownum+1 AS rownum from
 (select q.* from (select DISTINCT INDEX_NAME, index_id,'3' as INDEX_LEVEL from index_score s
    WHERE s.EVALUATE_id = evaluateId
    UNION ALL
    select DISTINCT INDEX_NAME,index_id,INDEX_LEVEL from index_total_score t
    WHERE t.EVALUATE_id = evaluateId) q ORDER BY q.INDEX_LEVEL DESC) t,(SELECT @rownum:=0) r) c;

     -- 拼接动态列
-- >>>>>>>>>>>>>>>>>>>>>>>
    SET @sql = NULL;
  SELECT
      GROUP_CONCAT(DISTINCT
        CONCAT(
          'MAX(IF(c.INDEX_NAME = ''',
          c.INDEX_NAME,
          ''', c.SCORE, 0)) AS ''',
          index_name_num, ''''
        ))
       INTO @sql
    FROM
    t_indexname_evaluate c where c.evaluate_id=evaluateId;
    
    -- 拼接sql
    -- <<<<<<<<<<<<<<<<<<<<<<<<
    
    SET @sql = CONCAT('Select c.target_id, c.target_name, ', @sql,
                            ' from (SELECT  t.target_id,
            t.target_name,
            t.SCORE,
            t.INDEX_ID,
            t.INDEX_NAME,
            t.index_parent_id
                FROM index_score  t
            UNION ALL
                SELECT
              s.target_id,
            s.target_name,
            s.SCORE,
            s.INDEX_ID,
            s.INDEX_NAME,
            s.index_parent_id
                FROM index_total_score s
            ) c
       group by target_id,target_name ');
        PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
阿里不让多表join?我偏要!
wm_concat函数
sql使用row
ORACLE 中ROWNUM(伪列)用法解析
sql 面试中的问题 - 当思考成为习惯,成功将随之而至 - 博客园
sql 面试问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服