字符串里过滤不需要的字符

需求描述

需求:过滤tmp_v视图里含数字的部分. 其中tmp_v视图的data字段的定义是emp表的ename字段拼接空格和deptno字段。

解决方法:这里通过translate函数对含数字的部分进行替换.

注: 数据库数据集SQL脚本详见如下链接地址

​​员工表结构和数据初始化SQL脚本​​

SQL代码

--SQL Server:
create view tmp_v
AS SELECT ename+' '+ cast(deptno as varchar) as data
from emp

SELECT data,replace(dbo.translate(data,'0123456789','@@@@@@@@@@'),'@','') as ename FROM tmp_v
order by replace(dbo.translate(data,'0123456789','@@@@@@@@@@'),'@','') desc

执行结果

处理字符串_5_字符串里过滤不需要的字符_SQL

这里需要参考之前章节里translate函数的实现.

--Mysql:
create view tmp_v
AS SELECT CONCAT(ename,' ',deptno) as data
from emp

SELECT data,replace(translate(data,'0123456789','@@@@@@@@@@'),'@','') as ename
FROM tmp_v
order by replace(translate(data,'0123456789','@@@@@@@@@@'),'@','') desc