不知道是否有可能在SELECT語句中使用裝飾做:Oracle SQL可能在找到字符之前修剪字符?
基本上要在一個字符串修剪任何字符前的字符是:
說有值(名稱)奧利弗,戴夫我想在找到'v'之前修剪所有字符,以便這些值在之後會變成'ver'和've'
再一次,它對於trim語句來說太複雜了,除非有一種簡單的方法來組合它用LIKE來搜索這樣的東西。
可能是自己走在前面這裏,但會是一個有用的事情,如果有人能幫助開竅呢:)
不知道是否有可能在SELECT語句中使用裝飾做:Oracle SQL可能在找到字符之前修剪字符?
基本上要在一個字符串修剪任何字符前的字符是:
說有值(名稱)奧利弗,戴夫我想在找到'v'之前修剪所有字符,以便這些值在之後會變成'ver'和've'
再一次,它對於trim語句來說太複雜了,除非有一種簡單的方法來組合它用LIKE來搜索這樣的東西。
可能是自己走在前面這裏,但會是一個有用的事情,如果有人能幫助開竅呢:)
也許像
SELECT REGEXP_SUBSTR('David', 'v.*') from dual
WHERE REGEXP_LIKE('David', 'v.*')
約REGEXP_SUBSTR說明:http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions131.htm
REGEXP_LIKE: http://docs.oracle.com/cd/B14117_01/server.101/b10759/conditions018.htm
你可以用REGEXP或SUBSTR/INSTR來做:
SELECT CASE WHEN INSTR(mycolumn,'v') > 0
THEN SUBSTR(mycolumn,INSTR(mycolumn,'v'))
ELSE mycolumn
END
FROM ....
似乎已經工作了,你能解釋regexp與常規substr相比如何工作嗎? – toups 2012-04-18 05:05:47