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

图片说明

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

sql
hejiaqi920222
WaterInSunshine 你好,我也面临这个问题,请问你解决了吗,同问
10 个月之前 回复

3个回答

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

y1535623813
我笔记 具体怎么写呢?
10 个月之前 回复

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值,最后对应更新,,有个小问题更新到的是每段第一个的值,这个你自己改一下

select isnull(proid,49) from yourtable

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!