mysql有一个字段有两种格式,想把这两种格式截取字符串特殊字符,放到2列里面。

mysql有一个字段 有两种格式,第一种是夜班,格式是 19:00-07:00   中间特殊字符是-  第二种是日班,中间特殊字符是分号;格式07:00-13:00;13:00-19:00  想把字段的这两种格式 截取字符串特殊字符,放到2列里面。         

substring(card_valid_data,1,charindex(';',card_valid_data)-1) swdk,

 substring(card_valid_data,charindex(';',card_valid_data)+1,len(card_valid_data)-charindex('-',card_valid_data))   xwdk 目前可以通过substring加charindex 可以截取一种格式。   想问下如果字段做判断再截取的话,需要怎么写? 比如case when

备考FCRP 发布于 2021-2-15 08:22
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
备考FCRPLv4见习互助
发布于2021-2-15 09:45

(case  when shift_time_data = '07:30-11:30;13:00-17:00' then substring(card_valid_data,1,charindex(';',card_valid_data)-1)

       when shift_time_data = '07:00-13:00;13:00-19:00' then substring(card_valid_data,1,charindex(';',card_valid_data)-1)

       when shift_time_data = '19:30-07:30' then substring(card_valid_data,1,charindex('-',card_valid_data)-1) end) swdk,

  (case  when shift_time_data = '07:30-11:30;13:00-17:00' then substring(card_valid_data,charindex(';',card_valid_data)+1,len(card_valid_data)-charindex(';',card_valid_data)) 

       when shift_time_data = '07:00-13:00;13:00-19:00' then substring(card_valid_data,charindex(';',card_valid_data)+1,len(card_valid_data)-charindex(';',card_valid_data)) 

       when shift_time_data = '19:30-07:30' then substring(card_valid_data,charindex('-',card_valid_data)+1,len(card_valid_data)-charindex('-',card_valid_data)) end) xwdk,

写两个case  when 可以实现 

  • 0关注人数
  • 497浏览人数
  • 最后回答于:2021-2-15 09:45
    请选择关闭问题的原因
    确定 取消
    返回顶部