学习目标:
掌握TRANSLATE的用法
语法:
TRANSLATE
应用广泛,可实现字符替换。语法格式如下:
TRANSLATE(expr,from_string,to_string)
from_string 与 to_string 以字符为单位,对应字符逐个替换。示例语句如下所示:
演示案例:
在DM管理工具中或者disql中输入以下代码
SELECT TRANSLATE ('ab你好bcadefg', 'abcdefg', '1234567') AS new_str FROM DUAL;
输出:
演示案例:
如果 to_string 为空,则直接返回空值。示例语句如下所示:
SELECT TRANSLATE ('ab你好bcadefg', 'abcdefg', '') AS new_str FROM DUAL;
输出:
演示案例:
如果 to_string
对应的位置没有字符,from_string
中列出的字符将会被删除。示例语句如下所示:
SELECT TRANSLATE('ab你好bcadefg','1abcdefg','1') AS new_str FROM DUAL;
输出:
按数字和字母混合字符串中的字母排序
为了实现混合字符串排序,首先需创建如下视图:
CopyCREATE OR REPLACE VIEW v AS
SELECT postal_code || ' ' || city_id AS data FROM dmhr.location;
查询视图信息,示例语句如下所示:
CopySELECT * FROM v;
我们可以使用 translate
替换功能,把数字和空格都替换为空,然后再进行排序。示例语句如下所示:
Copy SELECT data, TRANSLATE (data, '- 0123456789', '-') AS oper_type
FROM v
WHERE ROWNUM < 5
ORDER BY 2;
输出结果: