我有一个sql语句:
select translate('abcdefg', 'abc', '') from dual;
Run Code Online (Sandbox Code Playgroud)
为什么结果什么都没有?我认为它应该是'defg'.
从文档:
您不能使用空字符串to_string从返回值中删除from_string中的所有字符.Oracle数据库将空字符串解释为null,如果此函数具有null参数,则返回null.要删除from_string中的所有字符,请将另一个字符连接到from_string的开头,并将此字符指定为to_string.例如,
TRANSLATE(expr, 'x0123456789', 'x')从expr中删除所有数字.
所以你可以这样做:
select translate('abcdefg', '#abc', '#') from dual;
TRANSLATE('ABCDEFG','#ABC','#')
-------------------------------
defg
Run Code Online (Sandbox Code Playgroud)
...使用任何不会出现在你身上的角色from_string.
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |