2013-07-02 40 views
3

嗨,這是我的第一篇文章,我也是新來的sql。我想從一個字符串如何從oracle中的字符之間獲取文本sql

我有一個表列,看起來像這樣

site - abc - left
site - def - left
site - ghi - right - inner
site - jkl - right - inner
site - mno
site - pqr

我需要一箇中提取文本查詢會返回前兩個' - '但按照例子,一些只有一個' - '。

例如。

abc
def
ghi
jkl
mno
pqr

greatfully接受

我一直只用代碼給我的第一列「網站的任何幫助。

SELECT SUBSTR(site.description,1,instr(site.description,'-',1,1)-1) AS loc
FROM table

+0

您是否想僅使用一個'-'返回那些,即使它們不在兩個'-'之間?那麼'對'呢?它在兩個' - '之間,他們爲什麼不被退回? –

+0

你到目前爲止嘗試過什麼?向我們展示您目前使用的代碼。 –

+0

是的,我需要用'-'和''''''來返回兩個。例如,我不感興趣。 '對'。 – leroy

回答

0

我沒有檢查,但我認爲這會爲你工作

substr(var1,1,instr(site.description,'-',1,1)+1-instr(site.description,'-',1,2)-1) 

它應該工作,如果它不只是需要一點點change.let我知道結果

2

假設你的數據駐留在在你的問題中提到一個與提交討論僅列VAL以上值命名test_n,查詢:

select val 
    , instr(val, '-', 1,1) + 1 START_POS 
    , instr(val, '-',1,2) END_POS 
    , substr(val, instr(val, '-', 1,1) + 1, decode(instr(val, '-',1,2),0,length(val)+1,instr(val, '-',1,2)) - instr(val, '-', 1,1)-1) result 
FROM test_n; 
+0

很好,對我來說工作得很好 – eMi

+0

有沒有一種方法可以添加另一個修剪輸出中第一個字符的函數?從OP的例子中,結果是:bc,ef,hi .. –

相關問題