SQL处理

image.png

SQL server 数据库里   在用sql找到第一个小表格的数据之后  咋样写sql 把 cost为0的数据 同化成 后边第二种情况的数据


image.png

image.png

大哥大没信号 发布于 2020-8-1 13:57 (编辑于 2020-8-3 10:13)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
luojian0323Lv7资深互助
发布于2020-8-1 14:00(编辑于 2020-8-1 14:32)


select b.CODE,c.COST from table as b
left join (
select distinct a.CODE,a.COST from table as a)c
on b.CODE=c.CODE


image.png

最佳回答
0
Doctor_WeiLv7中级互助
发布于2020-8-1 14:06

关联完之后case when 也行

最佳回答
0
jongwangLv6中级互助
发布于2020-8-1 14:44(编辑于 2020-8-3 10:07)

试下这个呢


select  a.code, 

max(a.cost) over(partition by a.code order by a.cost )  as cost from table a


或者

Lag(a.cost,1,null) over(partition by code order by a.cost) as cost --偏移


图示效果应该都可以达到


----------------------------------------------------

新加内容:


image.png

  • 大哥大没信号 大哥大没信号(提问者) 这个 太图示效果了 哈哈哈 内个 跟实际需求有点冲突 实际需求 其实是 在 code一样的情况下 cost 可能 会有多种值 然后 过滤多种值得条件 其实是两个 第一个就是 在数据都不为零得情况下 然后 所有得值 都变成 最小得那一个值 第二个 条件 就是 在 多种值里边 有 零得 情况下 这个 零 也要变成 其余不为零得数值 得 最小值
    2020-08-03 09:20 
  • 大哥大没信号 大哥大没信号(提问者) 然后 就是 数据的条数 都不变得奥 只是 根据上边得条件改变每个cost得数据 而不是 根据上边得条件 筛选过滤
    2020-08-03 09:22 
  • jongwang jongwang 回复 大哥大没信号(提问者) 嗯嗯,你看下这个应该可以:我另外改下了答案,加了个截图。你看下截图是不是你要的效果。。 min(nullif(cost,0)) over (partition by code by nullif(cost,0))
    2020-08-03 09:58 
  • 大哥大没信号 大哥大没信号(提问者) 回复 jongwang 就是 数据存在0 得那些 都变成空了 执行结果 挂到上边了
    2020-08-03 10:10 
  • jongwang jongwang 回复 大哥大没信号(提问者) 你的语句也粘贴发出来呢,看下
    2020-08-03 10:12 
  • 4关注人数
  • 486浏览人数
  • 最后回答于:2020-8-3 10:13
    请选择关闭问题的原因
    确定 取消
    返回顶部