sql 语句系列(字符串之父与子之间)[八百章之第十二章]
前言
介绍字符串和其子字符串直接的使用。
判断含有子字母的字符串
select * from emp
在mysql中:
select emp.ename from emp where emp.ename REGEXP '[^0-9a-zA-Z]'=0
在mysql 中是真的很愉快了。
sql service
select * from emp_copy
select x.emp,x.id from (select emp_copy.emp,SUBSTRING(emp_copy.emp,t100.ID,1) as c,ASCII(SUBSTRING(emp_copy.emp,t100.ID,1)) value, emp_copy.id from emp_copy,T100 where LEN(emp_copy.emp)>=T100.ID) x
group by x.id,x.emp
having min(x.value) between 48 and 122
通过ascii来识别。
提取姓名的首字母
select * from emp
英文名一般是这样的firstname lastname,这时候不考虑middle name,因为这仅仅是一个例子。
sql 语句十分简单,如果有任何疑问可查询各个函数的作用。
select TRIM(TRAILING '.' from CONCAT_WS('.',SUBSTR(SUBSTRING_INDEX(emp.ename,' ',1),1,1) ,SUBSTR(SUBSTRING_INDEX(emp.ename,' ',-1),1,1) )) AS ename
from emp
按照子字符串排序 与 按照数字排序
select EMP.ENAME from emp order by SUBSTRING(EMP.ENAME,2,2)
数字也一样,只是说把字符串去除了,可参考我上一章节。