读书人

oracle 中 LTRIM()函数的有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

oracle 中 LTRIM()函数的问题
语句如下:

SELECT LTRIM( '1092002081100058424 ', '109 ') FROM dual
UNION ALL
SELECT LTRIM( '1091000000002671251 ', '109 ') FROM dual

运行结果如下:

12002081100058424
22671251

问题:为什么截断的效果不一样呢???理想中应该是如下才对啊。

1 2002081100058424
2 1000000002671251


[解决办法]
--Ltrim 函数现实c1匹配前面开始去掉出现在c2的中任何前导字符集
[解决办法]
试了下,
SELECT LTRIM( '1092002081100058424 ', '1092 ') FROM dual
UNION ALL
SELECT LTRIM( '1091000000002671251 ', '109 ') FROM dual
结果得到
181100058424
22671251
,可看,ltrim是把开头是1 0 9 的都截了,而不是整个字符串截的


[解决办法]
函数将109当成了三个字符以1,0,9在字符串开始直道出现不为1,0,9这三个字符中的任意一个开始截取

读书人网 >oracle

热点推荐