实例:SQL中根据特殊字符截取数据

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

实例:SQL中根据特殊字符截取数据

实例:

有一个字段,里面都是用字母和冒号A:换行,想取最后一个冒号前面的字母,如下:

image.webp


由于SQL里面没有split,就只能自己想招了;

用了reverse函数反转数据,如下图;

image.webp

用charindex函数返回数据;charindex(':',@str,1)  '第一个冒号的索引值'是在第6位;

image.webp


然后再用substring截取数据;

substring的用法-截取指定位置的字符串

substring(字段,从第几位开始截取,截取字段长度);

substring(F_ORA_REMARK2,1,10);  从第一位开始取10个字符;

image.webp

完整代码:

SELECT F_ORA_REMARK2,F_ORA_ORGID,substring(reverse(F_ORA_REMARK2),charindex(':',reverse(F_ORA_REMARK2))+1,1) FROM T_BD_MATERIAL

WHERE substring(reverse(F_ORA_REMARK2),charindex(':',reverse(F_ORA_REMARK2))+1,1) IN ('B','J','C','Z') 

ORDER BY substring(reverse(F_ORA_REMARK2),charindex(':',reverse(F_ORA_REMARK2))+1,1)


substring(reverse(F_ORA_REMARK2),charindex(':',reverse(F_ORA_REMARK2))+1,1) 

表示:截取反转字段F_ORA_REMARK2,获取反转字段冒号的索引值的位置,+1表示索引值+1,比如获取的是6,再加1就是7,最后一个1表示的是获取字段的长度;


实例:SQL中根据特殊字符截取数据

实例:有一个字段,里面都是用字母和冒号A:换行,想取最后一个冒号前面的字母,如下:由于SQL里面没有split,就只能自己想招了;用了revers...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息