sql sever 中如何处理以下数据

源数据分别为A1-工序,A1工序,A1厂工序,工序

如何将他们都通过截取字符串或其他方法弄成只剩工序

且每个工序长度不一样,内容也不一样

上面表述的只是编码规则

history 发布于 2019-12-10 09:09 (编辑于 2019-12-10 09:19)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
nanxi111Lv5见习互助
发布于2019-12-10 09:35

工序有很多道,你是想去除A1-,A1这些字符串是吧

可以用

REPLACE ( string_expression , string_pattern , string_replacement )

参数:

①string_expression是原字符串。 string_expression 可以是字符或二进制数据类型 。

②string_pattern是要查找的子字符串(指定字符串值)。 string_pattern 可以是字符或二进制数据类型 。 string_pattern 不能为空字符串 (''),不能超过页容纳的最大字节数 。

③string_replacement是替换字符串(另一个字符串值)。 string_replacement 可以是字符或二进制数据类型



比如  replace('abc','c','8') ='ab8'

多嵌套几次就行了,比如replace(replace('abc','c','8'),'b','7')

最佳回答
1
萌萌的呆贼Lv4初级互助
发布于2019-12-10 09:15

试试这个呢

case when 字段 like '%工序%' then '工序' end

最佳回答
0
wengleiLv4初级互助
发布于2019-12-10 09:13

right(数据源,2 ),从右面截取,可以试一下

最佳回答
0
孙一Lv4见习互助
发布于2019-12-10 09:13

select right(字段,2) from 表;

  • history history(提问者) 工序的长度不一定的
    2019-12-10 09:18 
  • 孙一 孙一 回复 history(提问者) 哦不是要截工序两个字……工序的开头有什么特征吗,所有工序的开头都是一致吗?
    2019-12-10 09:21 
  • history history(提问者) 回复 孙一 你可以再看一下上面的问题,意思就是 A1-3D,A1厂粗磨,A1精磨,精雕 这样子的弄成一道道工序
    2019-12-10 09:25 
  • 孙一 孙一 回复 history(提问者) 如果源数据就是上面的4种, select case when left(字段,3)=\'A1-\' or left(字段,3)=\'A1厂\' then right(字段,len(字段)-3) when left(字段,3)<>\'A1-\' and left(字段,3)<>\'A1厂\' and left(字段,2)=\'A1\' then right(字段,len(字段)-2) else 字段 end 工序 from 表
    2019-12-10 09:30 
最佳回答
0
axingLv6专家互助
发布于2019-12-10 09:31

如果工序不是很多的话,建议弄个对照表还快点

最佳回答
0
张先森LoveLv2见习互助
发布于2019-12-10 09:33

重新创建一个表,分三个列,


ID ,分割工序,原工序


这样你就可以进行联表查询,来找到对应的分割好了的工序了,


希望采纳,不明白的地方可以及时和我沟通

  • 7关注人数
  • 550浏览人数
  • 最后回答于:2019-12-10 09:35
    请选择关闭问题的原因
    确定 取消
    返回顶部