【业务功能篇25】case when的运用

文章描述了一个业务问题表中,提交人字段显示的是用户ID而非真实姓名。解决方法是使用SQL的Casewhen语句,当提交人字段以uuid开头时,查询user表获取对应用户名称,否则保留原字段值。这实现了数据的自动转换和匹配。
摘要由CSDN通过智能技术生成

业务场景: 当前有一个业务问题表,表中有很多字段,比如问题描述,发生时间,提交人等等,其中有个字段 提交人,展示的内容是提交人的id,而不是展示真实的提交人信息,而存放用户信息在另一张user表中,可以通过uuid 找到user_name真实的用户信息。

                

特殊点: 实际上这个问题单中的提交人,有些都是用户正常信息记录着的,比如zhangsan,lisi等等,但是有些数据却是uuidxxxx,格式的需要进行转换

所以这里我们需要用case when 来判断需要转换的字段

  select
        businessKey,
        issureNo,
        (case when left(applyUser,4)='uuid' then (select USER_NAME from schema.user_f where UID = applyUser) else applyUser end) AS applyUser

        from table

 

case when .....(补充条件,这里由于需要转换的提交人内容是uuid开头的字符串,所以去用left函数匹配前四位是uuid的一条记录)

then ....(符合前面的补充条件后,那么这里就是赋的值,通过user表查user_name 匹配表中的UID=其字段值,从而找到对应的用户信息名称赋值) 

else ....(没有匹配到 那么就给一个值,这里仍是放原先的字段值不变,表示没有匹配到这个uuidxxx,所以原封不动,没有转换)

end 做结尾符号

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值