
数据库
danielinbiti
Android,Java,web,vb,charge service
展开
-
mysql中类似oracle的over分组实现
今天,看到别人问问题,需求大概是这样的。ids开始时间结束时间1202001-01-01 08:10:202001-01-01 08:10:40192001-01-01 08:10:412001-01-01 08:10:501602001-01-01 08:10:512001-01-01 0原创 2015-01-22 23:12:14 · 5779 阅读 · 1 评论 -
SQLServer复杂SQL逻辑实现
一、问题如下图,已有表a与表b的数据,如何通过SQL语句变成表c?表a是UserName相同时,根据Month降序汇总Salary数据;表b是UserName对应SumSalary的上限值;表c是从表a中取出表b上限值以下的分录,若分录的SumSalary值大于b表的Salary,则拆分出刚好汇总等于b表的Salary数。表A的SQL语句:create table b( Use原创 2015-07-19 00:29:24 · 3584 阅读 · 0 评论 -
MySQL连续数统计
CREATE TABLE [dbo].Jqfk NOT NULL,[yhh] char NULL,CREATE TABLE [dbo].Jqfk NOT NULL,[yhh] char NULL,[cbrq] nvarchar NULL,[ysl] [int] NULL,)[cbrq] [nvarchar](19) NULL,[ysl] [int] NULL,)INSERT IN原创 2015-07-06 16:57:01 · 2346 阅读 · 0 评论 -
SQLServer的Lead和Lag实现
在这里不谈2012版本,因为那版本好像有了lead,lag函数,不过没试过。这里主要讲怎么自己实现1、有表A如下数据2、SQL如下SELECT * FROM (SELECT A.*,row_number() OVER(order by id) r FROM A) k,(SELECT A.*,row_number() OVER(order by id) r FROM A)原创 2015-04-27 13:05:18 · 6321 阅读 · 1 评论 -
mysql实现关联订单统计
1、要求如下收货人 收货地址 订单号 用户ID张三 北京 1001 1张四 上海 1002 2张五 北京 1003 3张六 广州 1004 4张三 深圳 1005 5张七 上海 1006 6现在有这样的一个需求,每一行假定是一条订单记录,收货人和收货地址字段任意一项与其他订单一致,即认为是关联订单如果关联订单大于3条,就把这条订单原创 2015-04-13 17:33:17 · 2644 阅读 · 0 评论 -
MySQL数据库定义 function、procedure、trigger报错:syntax error, unexpected end_of_input, expecting
MySQL数据库定义 function、procedure、trigger报错:syntax error, unexpected end_of_input, expecting分类: Database & SQL error解决方法2013-06-29 09:48 1435人阅读 评论(0) 收藏 举报按照一些教程尝试在 MySQL 的 workbench 写函数,转载 2015-04-07 14:06:34 · 4250 阅读 · 0 评论 -
Oracle把成绩行的方式转成列
1、表格中有如下数据姓名科目一月二月三月张三 语文304050张三 数学 566578张三 英语288648李四语文314151李四数学 576679李四英语298749先要转原创 2015-04-10 12:13:39 · 2105 阅读 · 0 评论 -
mysql的lag和Lead函数
1、mysql中没有lag和lead函数,因为Oracle使用惯了,没有这函数有些不方便。于是琢磨能不能实现。2、如果用函数,肯定可以实现。但如果不用函数,是否能够实现呢?经过试验,发现可以达到目的。对于lag函数,可以这么写select @lagfield,@lagfiled:=targField,t.* from table t ,(select @lagfield:='') r原创 2015-01-22 22:50:39 · 27467 阅读 · 7 评论 -
Oracle连续数据处理示例
下面这段内容讲解的功能是Oracle数据库中有一张表,表中存储了连续的时间记录,同时对应的还存储了一个标记位。现在要获取一个结果集:当标记位为0时,取前一个为1的时间数据,如果标记位为1时,取当前记录的时间数据。=================先上干货。再解释1、建表create table test_date( t_TIME varchar(20), --时间原创 2014-12-30 13:42:40 · 2074 阅读 · 0 评论 -
Oracle跨服务器查询插入数据
想实现insert into 当前库表 select 远程库中的表数据这种方式的数据同步,于是配置了一下oracle服务,远程和本地服务都是oracle一、在当前库中插入数据create public database link remotedb connect to username identified by password using 'db';create public da原创 2013-12-20 15:25:23 · 2732 阅读 · 0 评论 -
Oracle的DMP文件修改版本号
概括的说就是折腾。1、11G的Oracle备份(原来不知道),往10G的Oracle恢复,恢复的时候提示头不对,于是漫长的修改版本号开始了。2、由于备份很大很大,开始用UE等打开试试,漫长的等待后卡死+磁盘空间不足。3、于是开始找文件分割工具,找到了工具。结果因为太大,好不容易分割完了,合并的时候总是在一半的时候报错。(一下子一天过去了)4、终于准备自己动手丰衣足食。就写了这么原创 2014-09-23 16:09:48 · 25379 阅读 · 8 评论 -
SQLServer和Oracle的随机关系对应
有需求如下:现在要补齐tb1中演唱歌曲字段。条件是去tb2中查找相同艺人演唱过的歌曲,随机填充到tb1中的歌曲名字段一个歌手不止演唱一首歌,所以tb2中是艺人演唱所有歌曲的集合。tb1中同一个歌手可能出现好几次补齐时候需根据tb1中艺人名称去tb2也就是艺人歌曲汇总表中查找相同艺人演唱的歌曲名称。需要在艺人名相同情况下随机取tb2中演唱歌曲名去一一补齐tb1中的字段 tb1原创 2015-01-28 16:09:46 · 2804 阅读 · 2 评论 -
MySQL分组排序
一、问题产品表有平台id 产品名称id ptid name1 100 产品12 100 产品23 100 产品34 100 产品45 100 产品56 100 产品67 101 产品78 101 产品89 101 产品910 101 产品1011 101 产品11如何根据某个平台id 只取这个平台的3条数据(顺序可以随机)原创 2015-07-23 12:29:17 · 1272 阅读 · 0 评论