casewhen怎么写?想让字段“ZICYY4707”为空是给它赋值0

语句是:

SELECT CALMONTH,ZICZE0000,ZICZE00_TXTSH,ZICZS0000,EMPLSGROUP,ZICYY4707,ZICYY4708,

SUM(ZMODIFYCUR),SUM(ZDIAMONDCUR),SUM(ZIFYY4705)

FROM 

"_SYS_BIC"."CB.AL.YW/ZAL_MODIFYBEZEL" 

WHERE 

      CALMONTH >= '${S_CALMONTH_FROM}' 

      AND  CALMONTH <= '${S_CALMONTH_TO}' 

      AND  EMPLSGROUP IN ('41','73')

       ${S_BM}

       ${S_ZICYY4707}

       ${S_ZICZE0000}

       ${S_EMPLSGROUP}

GROUP BY CALMONTH,ZICZE0000,ZICZE00_TXTSH,ZICZS0000,

EMPLSGROUP,ZICYY4707,ZIFYY4705,ZICYY4708

ORDER BY CALMONTH,ZICZS0000,ZICZE0000

FineReport rbk333 发布于 2022-8-17 17:52
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
lxy2Lv6中级互助
发布于2022-8-18 08:08

select case when ZICYY4707 is null then 0 else ZICYY4707 end as new_ZICYY4707 from 表 group by case when ZICYY4707 is null then 0 else ZICYY4707 end   在group by 后面也要写上这一句

  • rbk333 rbk333(提问者) 在group by 后写AS后的值可以么? new_ZICYY4707
    2022-08-18 09:41 
  • lxy2 lxy2 回复 rbk333(提问者) 不可以直接写的,因为你本身这个字段还不存在
    2022-08-18 09:49 
  • rbk333 rbk333(提问者) 回复 lxy2 好的
    2022-08-18 09:51 
最佳回答
0
lishengtaoLv3初级互助
发布于2022-8-17 17:59

查询值:coalesce(ZICYY4707,0)

参数:CASE WHEN '${ZICYY4707}' = '' THEN 0 ELSE '${ZICYY4707}' END

或者${IF(LEN(ZICYY4707)==0,0,"+ZICYY4707+")}

  • rbk333 rbk333(提问者) 不是让参数为0 , 是在SQL让这个字段查出来如果无值则赋值0
    2022-08-17 18:20 
  • lishengtao lishengtao 回复 rbk333(提问者) coalesce(ZICYY4707,0) 这个就是呀= mysql用ifnull(ZICYY4707,0)也行,hive用nvl也行 实在不行用case when ZICYY4707 is null then 0 else ZICYY4707 end as ZICYY4707 也行
    2022-08-17 18:26 
最佳回答
0
weibwLv7高级互助
发布于2022-8-17 21:21
select (case when ZICYY4707 is null then 0 else ZICYY4707 end) as column_name from table_xx

  • 3关注人数
  • 418浏览人数
  • 最后回答于:2022-8-18 08:08
    请选择关闭问题的原因
    确定 取消
    返回顶部