oracle in長度限制的解決方法

oracle in長度限制的解決方法,將列轉爲行 但是字符串又會有長度限制,所以參考方法二

方法一:

SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,LEVEL) AS STR FROM DUAL CONNECT BY LEVEL <= LENGTH('17,20,23')-LENGTH(REGEXP_REPLACE('17,20,23',',','')) + 1

這裏還有一個函數:REGEXP_REPLACE

REGEXP_REPLACE(source_char, pattern [, replace_string [, position [, occurrence [, match_parameter ] ] ] ] )

source_char :需要進行處理的字符串

pattern :進行匹配的正則表達式

replace_string :替換的字符

position :從第幾個字符開始正則表達式匹配。(默認爲1)

occurrence :標識第幾個匹配組

方法二:

SELECT regexp_replace(Supplier, '[^0-9]') cc FROM (select '1' a1, '2' a2, '3' a3 from dual) T UNPIVOT(org_id FOR Supplier IN(a1,a2,a3)) P

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章