X
replace函数错误
xtep00 发布于2021-09 浏览:2193 回复:3
0
收藏
快速回复

在doris 0.14.12.4版本上,使用replace函数,对0不能正确替换

select replace('0011XYZ','0','2'); 返回0011XYZ,0未能替换;

select replace('0011XYZ','1','2'); 返回0022XYZ,1可以被替换;

换其它数字或字符,替换也正常,就是0不行

收藏
点赞
0
个赞
共3条回复 最后由yymhlq回复于2021-09
#4yymhlq回复于2021-09

这个问题之前我也遇到过,字符串的首字母是[符号,用replace替换不掉,后面改成用substr实现了

0
#3qiliyazhe回复于2021-09

已提交修复,PR: https://github.com/apache/incubator-doris/pull/6605

0
#2qiliyazhe回复于2021-09

我看了一下代码,这是一个bug。 

不是因为 0 字符替换不了,只要是string第一个字符是需要替换的目标,整个函数就会失败。

比如下面的例子。

mysql> select replace('1011XYZ','1','2');
+------------------------------+
| replace('1011XYZ', '1', '2') |
+------------------------------+
| 1011XYZ                      |
+------------------------------+
1 row in set (0.01 sec)

这个我来修复一下~ 感谢信息反馈

0
快速回复
TOP
切换版块