Mysql 多条件判断拼接字段数据

本文介绍如何使用Mysql的CASE WHEN语句进行多条件判断,实现字段数据的智能拼接,构造复杂的path关系并获取最后一级数据作为code。通过具体示例,展示如何根据job_function_code、job_sub_function_code和job_fam_function_code字段的不同情况,灵活生成不同的cate_code和path。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql 多条件判断拼接字段数据

示例

先去重加上distinct

select distinct
job_function_code,job_sub_function_code,job_fam_function_code from ps_inf_job_code
order by job_function_code asc

去重结果

想获取从后到前的path关系 并且获取最后一级数据作为code ,利用case when then else end 语句构造,when里可以写判断条件,表达式  then后可以是固定值,可以是拼接值,可以是字段值,参考下面示例及结果展示

select distinct
'function'as cate_code0,
'main_function'as cate_code1,
 (CASE
 WHEN (job_sub_function_code != '' or job_sub_function_code != null)
          and (job_fam_function_code = null or job_fam_function_code = '')THEN 'sub_function'
else '' END)as cate_code2,
 (CASE
 WHEN (job_fam_function_code != '' or job_fam_function_code != null)THEN 'fam_function'
else '' END)as cate_code3,
(CASE
 WHEN (job_sub_function_code != '' or job_sub_function_code != null)
          and (job_fam_function_code = null or job_fam_function_code = '')THEN CONCAT(job_function_code)
 WHEN job_fam_function_code != null or job_fam_function_code != '' THEN concat(job_function_code,'>',job_sub_function_code)
END)as path,
(CASE
 WHEN (job_function_code != '' or job_function_code != null)
          and (job_sub_function_code = null or job_sub_function_code = '')
          and (job_fam_function_code = null or job_fam_function_code = '')THEN job_function_code
 WHEN (job_sub_function_code != '' or job_sub_function_code != null)
          and (job_fam_function_code = null or job_fam_function_code = '')THEN job_sub_function_code
 WHEN job_fam_function_code != null or job_fam_function_code != '' THEN job_fam_function_code
END)as code,
job_function_code,job_sub_function_code,job_fam_function_code
 from ps_inf_job_code order by code asc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值