MYSQL#将多条无关的数据库记录合并成一条记录,并取值
来源:互联网 发布:红帽linux 10天就重启 编辑:程序博客网 时间:2024/06/07 05:48
1. 数据表【sys_info】
2. 将数据字典中的多条无关记录合并成一条记录
SELECT GROUP_CONCAT(CONCAT_WS(',',`sys_info`.`name`,`sys_info`.`value`) SEPARATOR ';') AS `config`FROM `sys_info`WHERE ((`sys_info`.`name` = CONVERT('预收热费单价' USING gbk)) OR (`sys_info`.`name` = CONVERT('基本热费单价' USING gbk)) OR (`sys_info`.`name` = CONVERT('计量热费单价' USING gbk)) OR (`sys_info`.`name` = CONVERT('基本热费比率' USING gbk)) OR (`sys_info`.`name` = CONVERT('面积热费单价' USING gbk)))
执行结果:
预收热费单价,24;基本热费单价,12;计量热费单价,0.16;基本热费比率,60;面积热费单价,24
3. 以SQL语句创建视图【v_sys_info】
CREATE /*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = { user | CURRENT_USER }] [SQL SECURITY { DEFINER | INVOKER }]*/ VIEW `db_cmr_xcrl`.`xxx` AS(SELECT GROUP_CONCAT(CONCAT_WS(',',`sys_info`.`name`,`sys_info`.`value`) SEPARATOR ';') AS `config`FROM `sys_info`WHERE ((`sys_info`.`name` = CONVERT('预收热费单价' USING gbk)) OR (`sys_info`.`name` = CONVERT('基本热费单价' USING gbk)) OR (`sys_info`.`name` = CONVERT('计量热费单价' USING gbk)) OR (`sys_info`.`name` = CONVERT('基本热费比率' USING gbk)) OR (`sys_info`.`name` = CONVERT('面积热费单价' USING gbk))))
4. 提取数据字段
SELECT CAST(SUBSTR(`g`.`config`,(LOCATE(CONVERT('预收热费单价' USING gbk),`g`.`config`) + 7),6) AS DECIMAL(5,2)) AS `price_prepaid`, CAST(SUBSTR(`g`.`config`,(LOCATE(CONVERT('基本热费单价' USING gbk),`g`.`config`) + 7),6) AS DECIMAL(5,2)) AS `price_base`, CAST(SUBSTR(`g`.`config`,(LOCATE(CONVERT('计量热费单价' USING gbk),`g`.`config`) + 7),6) AS DECIMAL(5,2)) AS `price_meas`, CAST(SUBSTR(`g`.`config`,(LOCATE(CONVERT('基本热费比率' USING gbk),`g`.`config`) + 7),6) AS DECIMAL(5,2)) AS `rate_price_base`, CAST(SUBSTR(`g`.`config`,(LOCATE(CONVERT('面积热费单价' USING gbk),`g`.`config`) + 7),6) AS DECIMAL(5,2)) AS `price_area`FROM v_sys_info g;
提取结果:
阅读全文
0 0
- MYSQL#将多条无关的数据库记录合并成一条记录,并取值
- MySQL数据库将多条记录的单个字段合并成一条记录
- [MySQL] MySQL将多条记录的某个字段合并成一条记录
- Mysql取每小时的一条记录
- group_concat()函数总结(mysql数据库中将某个字段的多条记录合并成一条记录),比较实用
- 利用数据库表转置将多条记录合并成一条记录
- mysql 分组取最新的一条记录(整条记录)
- mysql 分组取最新的一条记录(整条记录)
- MySQL数据库将多条记录的单个字段合并成
- 查询mysql数据库的最后一条记录
- Mysql之一对多查询,如何将多条记录合并成一条记录
- mysql 分组 排序 取时间最大的一条记录
- mysql 取一条离当前时间最近的记录
- MySql语句_取重复记录中最新的一条
- 随机从数据库取一条记录
- mysql 取范围内随机一条记录
- oracle 数据库单子段多条记录合并一条记录函数
- mysql合并多条记录的单个字段去一条记录
- ACE_Singleton类学习
- 欢迎使用CSDN-markdown编辑器
- Activity生命周期
- 5个学习Linux命令站点推荐
- JSP学习---jsp简介和理解jsp的本质
- MYSQL#将多条无关的数据库记录合并成一条记录,并取值
- getRequestURI,getRequestURL的区别(转)
- Opentsdb 2.3 Writing data(一)
- Mybatis使用generator自动生成映射配置文件信息
- Prime 素数判断
- 0-1背包问题
- 为什么在python里推荐使用多进程而不是多线程
- MySQL双主一致性架构优化(58沈剑)
- 自定义View之构造方法和用法