-1

我正在使用mysql数据库。如果字符串包含字符('/'),我想从字符串中提取子字符串。如果字符串中不包含“/”字符,它应该返回一个空字符串。

例如假设字符串是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)

问题是如果我的字符串是 only MY_FILE_PATH_CODE,那么相同的查询返回MY_FILE_PATH_CODE我不想要的,我希望返回是一个空字符串。

4

2 回答 2

0

您可能必须明确检查,可能是这样的:

select (case when instr(string, '/') = 0 then "" else substr(string, instr(string, '/')) end) from ( select string from ac1_control )
于 2012-12-24T07:28:23.123 回答
0

在 oracle 中: [基于 void string 为 null 并使用您的 orig 的假设。字符串]

SELECT REPLACE ( SUBSTR('MY_FILE_PATH_CODE',INSTR('MY_FILE_PATH_CODE','/') ),
                'MY_FILE_PATH_CODE') 
  FROM dual;
于 2012-12-24T07:34:26.543 回答