2015年7月17日

SQL生成一柱双色球

摘要: 数据库环境:SQL SERVER 2005以前用C/JAVA穷举双色球的所有排列,今天想着换成用SQL实现,只生成一柱双色球。简单说下双色球的规则,双色球由红色球和蓝色球组成,每注投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1--33中选择;蓝色球号码从1--16中选择。同时,一柱号码... 阅读全文

posted @ 2015-07-17 20:11 ToBeHJH 阅读(1418) 评论(2) 推荐(0)

求字符串中最大的递增子序列

摘要: 数据库环境:SQL SERVER 2005如题,求字符串“abcbklmnodfghijkmer”中最大的递增子序列。这个字符串有点特别,只由26个小写字母a-z组成。大概思路如下:1.将字符串转到一列存储,并生成行号2.设置一个递增计数器列,默认为1,比较上下行的字符,如果在字典中的顺序是递增,则... 阅读全文

posted @ 2015-07-17 18:18 ToBeHJH 阅读(770) 评论(0) 推荐(0)

2015年7月15日

分析函数改写自关联

摘要: 数据库环境:SQL SERVER 2005我们会看到这样的需求,查询部门的员工信息和对应的部门人数,要求在同一行上展示。在没有分析函数之前,遇到需求,只能通过员工表自关联来实现。我这里就有一个类似的例子SELECT COUNT(*) FROM dmrpout_03 LEFT JOI... 阅读全文

posted @ 2015-07-15 21:14 ToBeHJH 阅读(546) 评论(0) 推荐(0)

收集统计信息让SQL走正确的执行计划

摘要: 数据库环境:SQL SERVER 2005今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行,却执行了34分钟,甚至更久。先看一下执行结果我贴一下SQL。SELECT a.dec_yt1 , b.dec_yt1 , a.dec_yt2 , ... 阅读全文

posted @ 2015-07-15 15:48 ToBeHJH 阅读(2250) 评论(4) 推荐(1)

利用case when 减少表扫描次数

摘要: 数据库环境:SQL SERVER 2008R2有网友希望有人帮他优化一下他的SQL,SQL语句如下:WITH T AS (SELECT B.O_Money MON,B.O_States STATES FROM M_Basket A JOIN M_OrderInfo B ON A.OrderID=B.... 阅读全文

posted @ 2015-07-15 12:09 ToBeHJH 阅读(1184) 评论(0) 推荐(0)

2015年7月13日

利用查询提示优化SQL

摘要: 数据库环境:SQL SERVER 2005我们来看一下SQL语句及对应的数据量SELECT COUNT(*)FROM cinvout_02 aWHERE ( a.dept_id IN ( SELECT RTRIM(dept_id) FROM... 阅读全文

posted @ 2015-07-13 20:27 ToBeHJH 阅读(790) 评论(0) 推荐(0)

2015年7月7日

利用SQL进行推理

摘要: 数据库环境:SQL SERVER 2008R2有如下需求: Baker,Cooper,Fletcher,MillerandSmith住在一座房子的不同楼层。Baker不住顶层。Cooper不住底层。Fletcher既不住顶层也不住底层。Miller住得比Cooper高。Smith住的楼层和Fletc... 阅读全文

posted @ 2015-07-07 19:06 ToBeHJH 阅读(717) 评论(0) 推荐(0)

2015年7月1日

查找字段连续相同的最大值

摘要: 数据库环境:SQL SERVER 2008R2有基础数据如图1,要求取出id字段连续值为一组的cn最大值,即图2中红框圈中的部分。 先导入基础数据WITH x0 AS ( SELECT 1 AS id , 100 AS cn ... 阅读全文

posted @ 2015-07-01 14:40 ToBeHJH 阅读(595) 评论(3) 推荐(0)

2015年6月30日

优化有标量子查询的SQL

摘要: 数据库环境:SQL SERVER 2008R2今天在数据库中抓出一条比较耗费资源的SQL,只返回904条数据,居然跑了40多分钟。SQL及对应的数据量如下图:SELECT saft04.cur_year , LEFT(saft04.dept_id, 4) sdept_id , ... 阅读全文

posted @ 2015-06-30 22:40 ToBeHJH 阅读(1289) 评论(0) 推荐(0)

2015年6月5日

将部分相同的多行记录转成一行多列

摘要: 数据库环境:SQL SERVER2008R2需求如下图:简单解释一下需求,将同一年月的多行转到一行,分别展示每个用户的信息,在最后分别对前面数量和金额进行合计。这其实又是行列转换的一个应用,下面直接贴SQL/*数据准备*/WITH x0 AS ( SELECT CONVE... 阅读全文

posted @ 2015-06-05 20:59 ToBeHJH 阅读(1562) 评论(2) 推荐(0)

导航