SQL如何截取指定字段某一个字符的前面/后面的字符串

把字符串"OPE-CZ-108-003-SE71.2"做前后置拆分

SQL server写法:

 --SUBSTRING('列名',起始位数,要取的字符串长度)
SUBSTRING(expression,start,length)              

1.获取“.”前面的字符串:

SUBSTRING(TCID_GK,1,CHARINDEX('.',TCID_GK)-1) 

得到效果:OPE-CZ-108-003-SE71

列名从第一位取值 ,要取的字符串长度是“.”字符在字段中的位置减1

2.获取“.”后面的字符串:

SUBSTRING(TCID_GK,CHARINDEX('.',TCID_GK)+1,len(TCID_GK)-charindex('.',TCID_GK))

得到效果:2

列名,从“.”字符后一位开始,要取的字符串长度是字段总长度减去"."字符所在位置


Oracle写法:

1.获取“.”前面的字符串:

SUBSTR(TCID_GK,1, INSTR(TCID_GK,'.')-1)

2.获取“.”后面的字符串:

SUBSTR(TCID_GK, INSTR(TCID_GK,'.',1,1)+1)


Mysql写法:

1.获取“.”前面的字符串:

SUBSTRING_INDEX(TCID_GK,'.', 1)

2.获取“.”后面的字符串:

SUBSTRING_INDEX(TCID_GK,'.', -1)

编辑于 2021-03-10 11:21

文章被以下专栏收录