sql截取两个字符中间的所有字符

例:动力车间_除盐水总量(热电)_水

select

REPLACE(SUBSTRING(t.name,CHARINDEX('_',t.name,1),CHARINDEX('_',t.name,2)), '_', '')

from IDX_EVALUATE_LF t

为什么截取出来只有‘除盐水总’?求个大佬讲解一下

想要的结果是“除盐水总量(热电)”

用户PdBD63555554 发布于 2022-6-16 09:05 (编辑于 2022-6-16 09:10)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-6-16 09:13

select 

t.myname,

replace((SUBSTRING(replace(t.myname,'_',REPLICATE(' ',70)),70,70)),' ','') as ttt

from 

(

select

'动力车间_除盐水总量(热电)_水' as myname

) t

image.png

最佳回答
0
luojian0323Lv7资深互助
发布于2022-6-16 09:10

select substring(待查找字段,charindex('开始字符',待查找字段)+1,charindex('终止字符',待查找字段)-charindex('终止字符',待查找字段)-1) from 表 where 条件

  • 用户PdBD63555554 用户PdBD63555554(提问者) charindex()中间应该是三个参数啊,刚刚我用你这个方法跑了一下,报错‘[SQL Server]传递给 LEFT 或 SUBSTRING 函数的长度参数无效’
    2022-06-16 09:15 
  • 3关注人数
  • 458浏览人数
  • 最后回答于:2022-6-16 09:13
    请选择关闭问题的原因
    确定 取消
    返回顶部