码迷,mamicode.com
首页 > 其他好文 > 详细

6.13 判别可作为数值的字符串

时间:2017-05-02 18:22:43      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:tno   union   and   tween   char   art   混合   cat   nbsp   

问题:如果数值与字符混合在一起,需要删除那些字符,只返回数字。

create view v as
select concat(
substr(ename,1,2),
replace(cast(deptno as char(4)),‘ ‘,‘‘),
substr(ename,3,2)
) as mixed
from emp
where deptno=10
union all
select replace(cast(empno as char(4)),‘ ‘,‘‘)
from emp where deptno=20
union all
select ename from emp where deptno=30;

select * from v;

+--------+
| mixed  |
+--------+
| CL10AR |
| KI10NG |
| MI10LL |
| ALLEN  |
| WARD   |
| MARTIN |
| BLAKE  |
| TURNER |
| JAMES  |
+--------+

 

解决方案:

select cast(group_concat(c order by pos separator ‘‘ ) as unsigned) as MIXED1
from (
select v.mixed,iter.pos,substr(v.mixed,iter.pos,1) as c
from v,
(select id pos from t10)iter
where iter.pos <=length(v.mixed)
and ascii(substr(v.mixed,iter.pos,1)) between 48 and 57
)y
group by mixed
order by 1;

+--------+
| MIXED1 |
+--------+
|     10 |
|     10 |
|     10 |
+--------+

6.13 判别可作为数值的字符串

标签:tno   union   and   tween   char   art   混合   cat   nbsp   

原文地址:http://www.cnblogs.com/liang545621/p/6797265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!