Teradata REGEXP_SPLIT_TO_TABLE在数字之间插入空格

时间:2015-01-08 20:21:11

标签: sql regex teradata

我遇到了Teradata的REGEXP_SPLIT_TO_TABLE问题。它正确地分离结果,但它在每个单独的数字之间插入空格。我使用了CHAR2HEXINT,发现空格的十六进制是00.这是我正在使用的语句:

SELECT *  
FROM TABLE(
       REGEXP_SPLIT_TO_TABLE('2625 1410', '2625 1410', '[ \t\r\n\v\f]' , 'i') 
         RETURNS (outkey VARCHAR(250), token_ndx INTEGER, token VARCHAR(220) )
   ) AS t1;

它返回2 6 2 5行,1 4 1 0行。我希望结果是2625行,1410行。有什么我做错了添加空格吗?有没有办法摆脱空间?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,发现REGEXP_SPLIT_TO_TABLE返回UNICODE字符串:-) 但是,由于您没有为RETURN列指定字符集,因此解析器假定为LATIN,这会产生二进制零。

只需添加CHARACTER SET UNICODE:

SELECT *  
FROM TABLE(
       REGEXP_SPLIT_TO_TABLE('2625 1410', '2625 1410', '[ \t\r\n\v\f]' , 'i') 
         RETURNS (outkey VARCHAR(250) CHARACTER SET UNICODE
                 ,token_ndx INTEGER
                 ,token VARCHAR(220) CHARACTER SET UNICODE )
   ) AS t1;