• 常用sql汇总


    -- 常见的sql json 替换查询 表头金额汇总的数据升级 --
    update t_template_bill header INNER JOIN
    (select sum(SUBSTRING_INDEX(REPLACE(json_values,CONCAT(SUBSTRING_INDEX(json_values,'"ud_jine":',1),'"ud_jine":"'),''),'"',1)) as sum_amount,parentid FROM t_template_bill_entry GROUP BY parentid) entry
    on header.id = entry.parentid set header.bill_amount_basic = entry.sum_amount;




    -- erp --
    use iworker_inside;
    DROP PROCEDURE IF EXISTS `add_table`;
    DELIMITER $$
    create procedure add_table
    (
    in tblName nvarchar(100),
    in colInfoes nvarchar(4000)
    )
    begin
    DECLARE CurrentDatabase VARCHAR(100);
    SELECT DATABASE() INTO CurrentDatabase;
    IF NOT EXISTS(select 1 from information_schema.TABLES where `TABLE_SCHEMA` = CONVERT(CurrentDatabase USING utf8) AND `table_name` = tblName) THEN
    -- not EXISTS then create table
    set @sql = concat('CREATE TABLE ',tblName,'(',colInfoes,') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;');
    -- select @sql;
    PREPARE stmtCreateSql FROM @sql;
    EXECUTE stmtCreateSql;
    DEALLOCATE PREPARE stmtCreateSql;
    END IF;
    end;$$
    DELIMITER ;

    DROP PROCEDURE IF EXISTS `add_columns`;
    DELIMITER $$
    create procedure add_columns
    (
    in tblSchema nvarchar(50),
    in tblName nvarchar(50),
    in colInfoes nvarchar(2000)
    )
    begin
    declare colName nvarchar(50) default '';
    declare colInfo nvarchar(100) default '';
    declare separaterIdx int;
    declare colSQL nvarchar(1000) default CONCAT('ALTER TABLE ',tblName);

    set colInfoes = trim(colInfoes);
    build: LOOP
    set separaterIdx = instr(colInfoes,'|');
    if separaterIdx>0 Then
    begin
    set colInfo = left(colInfoes,separaterIdx-1);
    set colInfoes = trim(substring(colInfoes,separaterIdx+1));
    end;
    else
    begin
    set colInfo = colInfoes;
    end;
    end if;

    set colName = left(ltrim(colInfo),instr(colInfo,' '));
    IF not exists(select 1 from information_schema.columns
    where table_schema = tblSchema AND table_name = tblName AND column_name = colName) Then
    begin
    set colSQL = concat(colSQL,' ADD COLUMN ',colInfo,',');
    end;
    End IF;

    if separaterIdx>0 then
    ITERATE build;
    end if;
    LEAVE build;
    END LOOP build;

    if length(colSQL) > 16 then
    set @Sql = concat(trim(TRAILING ',' from colSQL),';');
    select @sql;
    PREPARE stmtinsert FROM @Sql;
    EXECUTE stmtinsert;
    DEALLOCATE PREPARE stmtinsert;
    end if;
    end;$$
    DELIMITER ;
  • 相关阅读:
    (计算几何 线段判交) 51nod1264 线段相交
    (线段判交的一些注意。。。)nyoj 1016-德莱联盟
    Spring的事务管理
    Spring JDBC模版以及三种数据库连接池的使用
    Springmvc架构
    AspectJ用注解替换xml配置
    在eclipse中spring的xml配置文件标签中class路径全限定名自动提示设置
    给属性字符串添加下划线
    检测程序是否打开
    系统目录
  • 原文地址:https://www.cnblogs.com/-cyh/p/10393895.html
Copyright © 2020-2023  润新知