2012-12-24 156 views
-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) 

而问题是,如果我的字符串是唯一MY_FILE_PATH_CODE,然后在同一查询返回MY_FILE_PATH_CODE,我不想,我想返回一个无效的字符串。

+0

'void string' ?? – Ravi

+0

void字符串表示 - 字符串中没有字符(例如“”) –

回答

0

你可能必须明确地检查,也许是这样的:

select (case when instr(string, '/') = 0 then "" else substr(string, instr(string, '/')) end) from (select string from ac1_control) 
+0

我试图在我的复杂查询中使用您的解决方案。 谢谢..它工作正常:) –

0

在oracle中:基于 [在假设空字符串为空,并使用您的原稿。字符串]

SELECT REPLACE (SUBSTR('MY_FILE_PATH_CODE',INSTR('MY_FILE_PATH_CODE','/')), 
       'MY_FILE_PATH_CODE') 
    FROM dual;