我有一個長整數爲5的字符串。所以長度可以是:5,10,15 ...... 我想把這個字符串分成5個字符塊來傳遞在IN
clausole:Oracle sql中拆分字符串的大小寫
String="00000111112222233333"
我想:
SELECT * FROM myTable WHERE code IN ('00000','11111','22222','33333')
可以做到這一點在SQL?
我有一個長整數爲5的字符串。所以長度可以是:5,10,15 ...... 我想把這個字符串分成5個字符塊來傳遞在IN
clausole:Oracle sql中拆分字符串的大小寫
String="00000111112222233333"
我想:
SELECT * FROM myTable WHERE code IN ('00000','11111','22222','33333')
可以做到這一點在SQL?
select regexp_substr(s, '.{5}', 1, lvl) chnk
from (select s, level lvl
from (select '00000111112222233333' s from dual)
connect by level <= length(s)/5);
使用Connect通過生成所需的行數
對於每一行發現任何5個字符從字符串的開頭開始,並得到第N次數。
這個解決方案對我來說效果很好。 – user1066183 2014-10-30 20:26:06
使用分層查詢拆分字符串,並substr
提取的每個數據塊:
with data as (select '00000111112222233333' s from dual)
select substr(s, (level-1)*5+1, 5) chnk
from data
connect by level <= length(s)/5
我看你有沒有 「字符串=」。你是從另一種語言(Java等)調用SQL還是隻是爲了顯示什麼是原始的字符串? – Ascalonian 2014-10-30 19:13:48
是的,我打電話給Ibatis的sql – user1066183 2014-10-30 20:22:03