我正在使用mysql数据库。我想从字符串中提取子字符串,前提是字符串包含一个字符('/')。如果字符串中不包含“/”字符,则应返回void字符串。
例如,假设字符串为MY_FILE_PATH_CODE/dir1/dir2
查询
select substr(string,instr(string ,'/')) from ( select string from ac1_control );
Return value : /dir1/dir2 (correct as i want)
问题是如果我的字符串只是MY_FILE_PATH_CODE
,那么相同的查询返回我不想要的MY_FILE_PATH_CODE
,我想返回一个空字符串。
答案 0 :(得分:0)
您可能必须明确检查,可能是这样:
select (case when instr(string, '/') = 0 then "" else substr(string, instr(string, '/')) end) from ( select string from ac1_control )
答案 1 :(得分:0)
在oracle中: [基于假设void string为null并使用您的orig。串
SELECT REPLACE ( SUBSTR('MY_FILE_PATH_CODE',INSTR('MY_FILE_PATH_CODE','/') ),
'MY_FILE_PATH_CODE')
FROM dual;