- SQL 函数一些函数
- LEFT(str,len)
- RIGHT(str,len)
- LOCATE(substr,str)
- SUBSTR(str FROM pos FOR len)
一、SQL 函数
LEFT(str,len)
LEFT:从左提取所要字符
用法:LEFT(字符串对应列名,从左数截取所需字符位置)
ringht:与用法与left一致
RIGHT(str,len)
用法:LEFT(所需的对应列名,从右数截取所需字符位置)
//从左截取第一位字符
SELECT LEFT(salary,1),salary FROM dataanalyst_sql;
//从右截取第一位字符
SELECT right(salary,1),salary FROM dataanalyst_sql;
//从左截取4个字符
SELECT LEFT(salary,4),salary FROM dataanalyst_sql;
只显示LEFT(salary,1)列
SELECT LEFT(salary,1) FROM dataanalyst_sql;
LOCATE(substr,str)
LOCATE:定位某一字符位置,返回对应字符位置(定位,查找字符所在在整字符串的位置)
用法:LOCATE('查找的字符串',对应列名,从字符串中第几个位置开始查找)
LOCATE('查找的字符串',对应列名) //不写默认第一位开始
ps:只能查找一次一个
//从salary列第三位置开始找'k'在该列的位置
SELECT LEFT(salary,1),LOCATE('k',salary,3), salary
FROM
dataanalyst_sql;
//默认从第一位开始找‘k’
SELECT LEFT(salary,1),LOCATE('k',salary), salary
FROM
dataanalyst_sql;
//结合用:拆分列,截取薪资上限
SELECT LEFT(salary,LOCATE('k',salary)-1), salary
FROM
dataanalyst_sql;
//方法一:提取工资下限。
SELECT RIGHT(salary,LOCATE('-',salary)-1), salary
FROM
dataanalyst_sql;
k仍在
方法二
利用两次left函数截取,
SELECT
LEFT(salary,LOCATE('k',salary)-1),
LOCATE('-',salary),
LENGTH(salary), //计算salary列字符长度
//LENGTH(salary)-LOCATE('-',salary) 等于右边长度(下限工资)
RIGHT(salary,LENGTH(salary)-LOCATE('-',salary)), //截取下限工资,并把它当成一个新的列
//LEFT(salary,LOCATE('k',salary)-1)
//salary=RIGHT(salary,LENGTH(salary)-LOCATE('-',salary))
//LENGTH(salary)-LOCATE('-',salary)-1 /left需要截取的长度
LEFT(RIGHT(salary,LENGTH(salary)-LOCATE('-',salary)),LENGTH(salary)-LOCATE('-',salary)-1),
salary
FROM
dataanalyst_sql;
//新手分步骤写
SUBSTR()
- SUBSTR(字符串,在字符哪个位置开始,需要截取长度)
- SUBSTR(str,pos,len) 就是从pos开始的位置,截取len个字符(空白也算字符)
- SBUSTR(字符串,在字符哪个位置开始)
- SBUSTR(str,pos) 就是从pos开始的位置,一直截取到最后。
SELECT
LEFT(salary,LOCATE('k',salary)-1),
LOCATE('-',salary),
LENGTH(salary),
SUBSTR(salary,'-',LENGTH(salary)-LENGTH(salary)),
salary
FROM
dataanalyst_sql;