y1535623813
我笔记
采纳率0%
2018-12-19 09:27 阅读 1.6k

这个sql语句怎么写,sql语句如何补齐为空的数据

图片说明

数据格式是这样的一直循环下去,如何把数据库中所有这种为空的数据补齐,补齐内容为紧挨着上几个的proid不为空的值。
该使用怎样的sql语句来执行呢?
ms sql server 数据库

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • qq_37486884 疯狂的熊猫Npe 2018-12-19 02:06

    IFNULL(expression1,expression1)
    如果表达式不为空,则返回表达式1,反之返回表达式2

    点赞 评论 复制链接分享
  • qq_37129624 ghq-yes 2018-12-19 09:46

    update table z set priod=(select priod from (select a.orderID,b.priod from
    (select orderID,priod,@i:=(case when priod then @i else @i+1 end) as y from table,(select @i:=0) c) a
    left join
    (select orderID,priod,@i:=(case when priod then @i else @i+1 end) as y from table,(select @i:=0) c ) b
    on a.y=b.y-1
    ) f where z.orderID=f.orderID) where priod is null
    大概就是这么个写法,不知道词法有没有问题,可能需要改一点,思路就是根据priod是否为空分类,这个分类是按照是否连续跟是否为空分类的,,分类后把空的priod值去对应上一段的priod值,最后对应更新,,有个小问题更新到的是每段第一个的值,这个你自己改一下

    点赞 评论 复制链接分享
  • weixin_43991998 weixin_43991998 2019-09-26 16:02
    select isnull(proid,49) from yourtable
    

    查询时为空的列就会自动补49

    点赞 评论 复制链接分享

相关推荐