qq_53333691 2022-01-06 13:23 采纳率: 70%
浏览 44
已结题

查找表中的某个字段,如果有‘-’,则取‘-’之前的值,没有‘-’,则取原值

问题遇到的现象和发生背景

表中gcbh字段,例如值为:XDK1243和XDK123-dkfk,如果有‘-’,则取‘-’之前的值XDK123,没有‘-’,则取原值XDK1243

问题相关代码,请勿粘贴截图

select left(gcbh,case when charindex('-',gcbh)-1>0 then charindex('-',gcbh)-1
when charindex('-',gcbh)-1<=0 then gcbh end)bh from uf_gcxxb

运行结果及报错内容

在将varchar值转换成数据类型int时失败

求解(表中有多个字段,不能直接取字符串)

  • 写回答

2条回答 默认 最新

  • 神仙别闹 2022-01-06 13:40
    关注

    img

    其中的字符串可以换成你的字段名

    
    select SUBSTRING('XDK123-dkfk',1,case when (CHARINDEX('-','XDK123-dkfk')-1)>0 then (CHARINDEX('-','XDK123-dkfk')-1) else (LEN('XDK123-dkfk')) end) 
    select SUBSTRING('XDK123',1,case when (CHARINDEX('-','XDK123')-1)>0 then (CHARINDEX('-','XDK123')-1) else (LEN('XDK123')) end) 
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月6日
  • 修改了问题 1月6日
  • 创建了问题 1月6日

悬赏问题

  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥20 python忆阻器数字识别
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api