查看: 28413|回复: 17

【讨论】昨天碰到一个问题,SQL好的话帮忙想一下

[复制链接]
论坛徽章:
3
雪佛兰
日期:2013-10-10 21:39:18奔驰
日期:2013-11-22 22:33:01优秀写手
日期:2013-12-18 09:29:13
发表于 2014-9-26 07:18 | 显示全部楼层 |阅读模式
数据行:
            名称    数量     日期
第一行:小米    1   
第二行                      2014-1-1
第三行  大米     2      
第四行                      2013-4-1
第五行                      2014-9-1
如何将上一行名称、数量填充到(update)下面不为空的行,如:

            名称    数量     日期
第一行:小米    1   
第二行  小米     1       2014-1-1
第三行  大米     2      
第四行  大米     2       2013-4-1
第五行  大米     2       2014-9-1

是不是有函数可以填充,谢谢!



论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
发表于 2014-9-26 07:41 来自手机 | 显示全部楼层
有。。。。。

使用道具 举报

回复
论坛徽章:
310
生肖徽章:鼠
日期:2014-08-07 19:59:00生肖徽章:牛
日期:2015-01-14 17:40:00生肖徽章:虎
日期:2014-11-05 19:45:02生肖徽章:兔
日期:2015-03-05 07:52:09生肖徽章:龙
日期:2015-03-05 07:53:59生肖徽章:蛇
日期:2014-08-28 11:56:51生肖徽章:马
日期:2014-11-04 20:19:57生肖徽章:羊
日期:2015-01-09 15:48:14生肖徽章:猴
日期:2015-02-04 16:57:45生肖徽章:鸡
日期:2014-09-05 20:35:13
发表于 2014-9-26 08:18 | 显示全部楼层

WITH T AS
(SELECT 1 ID, '小米' NAME, 1 NUM, NULL DAT
    FROM DUAL
  UNION ALL
  SELECT 2 ID, '' NAME, NULL NUM, '2014-1-1' DAT
    FROM DUAL
  UNION ALL
  SELECT 3 ID, '大米' NAME, 2 NUM, NULL DAT
    FROM DUAL
  UNION ALL
  SELECT 4 ID, '' NAME, NULL NUM, '2013-4-1' DAT
    FROM DUAL
  UNION ALL
  SELECT 5 ID, '' NAME, NULL NUM, '2014-9-1' DAT FROM DUAL)
SELECT NAME,
       NUM,
       LAST_VALUE(NAME IGNORE NULLS) OVER(ORDER BY ID) NAME_1,
       LAST_VALUE(NUM IGNORE NULLS) OVER(ORDER BY ID) NUM_1
  FROM T;

大概是这个思路,求拍砖。。。。。

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
11
ITPUB社区千里马徽章
日期:2013-06-09 10:15:34懒羊羊
日期:2015-03-04 14:52:11懒羊羊
日期:2015-02-10 13:36:05马上有对象
日期:2015-02-02 12:29:02红宝石
日期:2015-01-19 09:44:10马上有车
日期:2014-11-11 14:16:07马上有车
日期:2014-03-27 15:59:39优秀写手
日期:2014-03-12 06:00:13马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09
发表于 2014-9-26 08:19 | 显示全部楼层
last_value或者lag还是lead?

使用道具 举报

回复
求职 : 数据库开发
认证徽章
论坛徽章:
16
2013年新春福章
日期:2013-02-25 14:51:24美羊羊
日期:2015-03-04 14:54:27凯迪拉克
日期:2014-11-20 09:13:05马上有钱
日期:2014-02-18 16:49:312014年新春福章
日期:2014-02-18 16:49:31优秀写手
日期:2013-12-18 09:29:13法拉利
日期:2013-10-18 16:22:26ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34ITPUB社区12周年站庆徽章
日期:2013-10-08 14:54:39
发表于 2014-9-26 09:04 | 显示全部楼层
lag或者lead吧

使用道具 举报

回复
认证徽章
论坛徽章:
32
懒羊羊
日期:2015-03-25 16:16:10ITPUB14周年纪念章
日期:2015-10-26 17:24:11射手座
日期:2015-09-23 08:53:55喜羊羊
日期:2015-06-15 13:04:17暖羊羊
日期:2015-05-21 16:12:35沸羊羊
日期:2015-05-07 17:25:26暖羊羊
日期:2015-05-21 16:12:35暖羊羊
日期:2015-05-21 16:12:35慢羊羊
日期:2015-04-21 17:07:36慢羊羊
日期:2015-03-25 09:38:59
发表于 2014-9-26 09:08 | 显示全部楼层
oracle_cj 发表于 2014-9-26 07:41
有。。。。。

为什么看到你这个回复 突然很想笑

使用道具 举报

回复
招聘 : 系统分析师
论坛徽章:
483
马上有钱
日期:2014-02-19 11:55:14itpub13周年纪念徽章
日期:2014-09-29 01:14:14itpub13周年纪念徽章
日期:2014-10-08 15:15:25itpub13周年纪念徽章
日期:2014-10-08 15:15:25马上有对象
日期:2014-10-12 11:58:40马上有车
日期:2014-11-16 17:11:29慢羊羊
日期:2015-02-09 17:04:38沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31ITPUB年度最佳版主
日期:2015-03-18 15:48:48
发表于 2014-9-26 09:45 | 显示全部楼层
你需要一个列来确定顺序
数据库不会按“一二三四五”来排的

使用道具 举报

回复
认证徽章
论坛徽章:
135
玉石琵琶
日期:2014-07-02 10:11:04九尾狐狸
日期:2014-07-02 10:11:04紫蜘蛛
日期:2014-07-02 10:11:04蓝色妖姬
日期:2014-07-02 10:11:04蓝色妖姬
日期:2014-08-28 15:17:25马上加薪
日期:2014-08-07 12:47:01马上加薪
日期:2014-07-23 11:55:37马上加薪
日期:2014-07-21 16:24:17马上加薪
日期:2014-07-17 17:01:52马上加薪
日期:2014-07-17 16:15:19
发表于 2014-9-26 11:08 | 显示全部楼层
oracle_cj 发表于 2014-9-26 07:41
有。。。。。

一针见血

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6348
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-9-26 16:29 | 显示全部楼层
lastwinner 发表于 2014-9-26 09:45
你需要一个列来确定顺序
数据库不会按“一二三四五”来排的

恩,这个需要有个字段来确定怎么排序

使用道具 举报

回复
求职 : 数据库开发
认证徽章
论坛徽章:
41
2017金鸡报晓
日期:2017-02-08 14:09:13秀才
日期:2016-01-13 12:14:26秀才
日期:2016-01-12 11:23:27金牛座
日期:2016-01-03 20:58:56秀才
日期:2015-12-21 09:53:46秀才
日期:2015-12-21 09:48:11秀才
日期:2015-12-18 09:28:57秀才
日期:2015-12-14 15:02:13秀才
日期:2015-11-23 09:48:22秀才
日期:2016-01-21 13:37:04
发表于 2014-9-27 21:45 | 显示全部楼层
oracle_cj 发表于 2014-9-26 07:41
有。。。。。

简约不简单啊!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表