2012-12-24 153 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;