SQL开发技巧:开发技巧

一、行列转换

  基本思路:

    1. 将数据转转为标书数据,如图所示

      

    2. 使用笛卡尔积做行列转换

select
    sum(case when childr=‘餐饮‘ then money end ) as ‘餐饮‘ ,
    sum(case when childr=‘通讯‘ then money end ) as ‘通讯‘ ,
    sum(case when childr=‘娱乐‘ then money end ) as ‘娱乐‘
from
    (select childr, convert(sum(money), decimal(10,2)) as money from wx_spend  group by childr) tmp;

一、单列转多行转换

原数据样式

  

      处理后数据样式

        

    SQL语句

CREATE TABLE tmp_sequence (id INT PRIMARY KEY AUTO_INCREMENT);
INSERT INTO tmp_sequence VALUES(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),();

SELECT
    name, REPLACE(SUBSTRING(SUBSTRING_INDEX(courseinfo, ‘,‘, a.id), CHAR_LENGTH(SUBSTRING_INDEX(courseinfo, ‘,‘, a.id-1)) + 1), ‘,‘ ,‘‘) AS courseinfo
FROM
    tmp_sequence a
CROSS JOIN
    (SELECT name, concat(courseinfo,",") AS courseinfo, LENGTH(courseinfo) - LENGTH(REPLACE(courseinfo, ‘,‘, ‘‘)) + 1 AS size FROM W_SalesCoursePackageInfo LIMIT 1,1) b
ON a.id <= b.size
时间: 2024-11-04 10:57:17

SQL开发技巧:开发技巧的相关文章

Android开发工程师应该知道的50个开发秘诀、技巧和资源分享

作者撰写本文的初衷,是为了罗列出Android Studio有用的提示.技巧.快捷方式和参考资源,将提高您的整体效率和操作性能. 显然,还有很多优化.快捷方式等,但作者为了保持这篇文章的简短,限制为50个,希望读者会喜欢这篇文章! InfoQ注:本文是以MacOS X操作Android Studio为例,与Windows / Linux不一致的地方已经标注,请读者注意这一点. 可视化 1.Android Logcat的材料颜色主题(Material Colors theme). 要更改Andro

[转]15个关于Chrome的开发必备小技巧

谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及debugger这些常用的调试技术,或许你已经了解.在本篇文章中,我们将介绍15个炫酷且实用的技巧,这将更快的提高你的开发效率. 一.快速查找文件 如果你使用过Sublime,那么你会知道'Go to anything'的强大.没错,Chrome现在也有了这一功能. 操作如下: 1.F12打开你的Ch

windows phone 开发常用小技巧 - 退出应用之升级版(三秒内双击退出)

//设置一个DispatcherTimer,控制三秒内再次点击返回键时执行退出逻辑 public void ExitBy2Click(System.ComponentModel.CancelEventArgs e) { if (!IsExit) { IsExit = true; e.Cancel = true; _timer = new DispatcherTimer(); _timer.Start(); SystemTrayMessage.Instance.StartAdv("再按一次退出&q

windows phone 开发常用小技巧 - 退出应用

wp7 //退出应用 new Microsoft.Xna.Framework.Game().Exit(); ================================================== wp8中无法使用上边的方法,下边两种都可行 1. while (NavigationService.BackStack.Any()) NavigationService.RemoveBackEntry(); base.OnBackKeyPress(new CancelEventArgs()

开发各类小技巧

//此方法能得到你想要的小数点后位数double percent=Convert.ToDouble(2)/Convert.ToDouble(34);string result=string.Format("{0:0.00%}",percent);//得到5.88%string result=string.Format("{0:0.0000%}",percent);//得到5.8824% //用这个方法比较理想,能得到你想要的小数点后位数double percent=

API开发的版本控制技巧

<API开发的版本控制技巧> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 在设计和构建API时,API的版本控制是非常重要的. 必须确保新API对于现有的API不会造成破坏. 首先,也是最重要的,可以把版本号放入API的URL中.这样可以把主要版本更新放入API.比如,我们在调用CHUser Center API时,可以在URL中使用/api-v1或/api-v2来指出所使用的API版本.这是很常见的做法. 在API版本控制中,还有一点也很重要

提高您CSS开发能力的技巧集

0. 目录 目录 引言 正文 1 使用not给导航条添加间隔线 2 给body元素增加Line-Height属性 3 任意元素垂直居中 4 逗号分隔的列表 5 在nth-child中使用负数 6 使用svg图标 7 文本显示优化 8 在Pure CSS Sliders中使用max-height 9 初始化box-sizing 10 表格单元格等宽 11 使用Flexbox摆脱各种Margin Hacks 12 给空连接使用属性选择符 声明 1. 引言 原文:github的A collection

Chrome 开发工具开发技巧

在Web开发者中,Google Chrome是使用最广泛的浏览器.六周一次的发布周期和一套强大的不断扩大开发功能,使其成为了web开发者必备的工具.你可能已经熟悉了它的部分功能,如使用console和debugger在线编辑CSS.在这篇文章中,我们将分享15个有助于改进你的开发流程的技巧. 一.快速切换文件 如果你使用过sublime text,那么你可能不习惯没有Go to anything这个功能的覆盖.你会很高兴听到chrome开发者功能也有这个功能,当DevTools被打开的时候,按C

windows phone 开发常用小技巧 - 命名空间 Microsoft.phone.Controls.Toolkit 中不存在名称

有时候从网上下来的项目示例,打开时页面会有莫名的找不到引用的报错,而dll文件确实存在,这有可能是文件被保护锁定了,找到该dll文件右键属性点击解除锁定,重新生成一下项目就可以了 windows phone 开发常用小技巧 - 命名空间 Microsoft.phone.Controls.Toolkit 中不存在名称

关于asp.net 开发的小技巧—让传值对象化

前端:前端 定义一个对象, 传值时实例此对象,序列化成json字符串 代码如下: 定义js对象: ///定义一个查询条件对象 var SearchCondition=function(){ this.Code=$("#Code").val(); this.ProjectID=$("#Project").val(); this.CustomerID=$("#Customer").val(); }; 序列化 $("#search"