2013-01-11 24 views
1

我需要将varchar字段拆分为设置长度的行,但没有分隔符。split_to_table()按字符数和无分隔符

实施例:
提起值:'Field example of varchar'
并且我想要这个分成长度为5的线,结果应该是:

"Field" 
" exam" 
"ple o" 
"f var" 
"char " 

我曾尝试此查询:

select regexp_split_to_table('Field example of varchar','(.{5})') as x 

但它不起作用,它返回五个空行。

+0

没有什么不对您的正则表达式反正差不多:http://regex101.com/r/eP6zT1 - 你必须改变{5}到{1,5}赶上因为字符串长度似乎不能被5(它的24)均匀分割。 –

+0

问题是,regexp_split_to_table保留分隔符之间的数据,但不是分隔符本身。看到解决方案会很有趣。 –

回答

1

您可以使用不regexp_split_to_table,但regexp_matches

select (regexp_matches('Field example of varchar', E'.{1,5}', 'g'))[1] 
+0

非常感谢,它完美的作品 –