SELECT ASCII('Abcdfsf'),
CHAR_LENGTH('hello'),CHAR_LENGTH('我们'),
# 返回字符数
LENGTH('hello'),LENGTH('我们')
# 返回字节数
FROM DUAL;
运行结果如下所示:
# xxx worked for yyy
SELECT CONCAT(emp.last_name,' worked for ',mgr.last_name) "details"
FROM employees emp JOIN employees mgr
# 内连接 + 交叉连接
WHERE emp.`manager_id` = mgr.employee_id;
运行结果如下所示:
SELECT CONCAT_WS('-','hello','world','hello','beijing')
# 第一个是连接符,后面代表要连接的字符串
FROM DUAL;
运行结果如下所示:
# 字符串的索引是从1开始的!
SELECT INSERT('helloworld',2,3,'aaaaa'),
# 从第二个字符串开始,把往后三个替换成'aaaa'
REPLACE('hello','ll','mmm')
# 把字符串中的ll 替换成 mmm
FROM DUAL;
运行结果如下所示:
# 将字符串全部变成大写或者小写
SELECT UPPER('HelLo'),LOWER('HelLo')
FROM DUAL;
运行结果如下所示:
SELECT LEFT('hello',2),
# 取左边两个字符
RIGHT('hello',3),
# 取右边三个字符
RIGHT('hello',13)
FROM DUAL;
运行结果如下所示:
# LPAD:实现右对齐效果
# RPAD:实现左对齐效果
SELECT employee_id,last_name,LPAD(salary,10,' ')
# 在字符串的左边填充' ',实现字符串长度为10
FROM employees;
运行结果如下所示:
SELECT CONCAT('---',LTRIM(' h el lo '),'***'),
# LTRIM 去掉左边空格
TRIM('o' FROM 'ooheollo')
# 去除首位的前面那个字符串
FROM DUAL;
运行结果如下所示:
SELECT REPEAT('hello',4),# 重复4遍
LENGTH(SPACE(5)),# 返回5个空格
STRCMP('abc','abe')# 比较大小
FROM DUAL;
运行结果如下所示:
SELECT SUBSTR('hello',2,2),
# 从第二个开始,往后俩个元素
LOCATE('ll','hello')
# 第一次出现的位置,没有返回0
FROM DUAL;
运行结果如下所示:
SELECT ELT(2,'a','b','c','d'),
# 写几就返回第几个字符串
FIELD('mm','gg','mm','dd','mm'),
# 返回第一个字符串出现的位置
FIND_IN_SET('mm','gg,mm,dd,mm,gg')
# 类似,就是字符串变成逗号隔开
FROM DUAL;
运行结果如下所示:
# 比较两个字符串,如果value1与value2相等,则返回NULL,否则返回value1
SELECT employee_id,NULLIF(LENGTH(first_name),LENGTH(last_name)) "compare"
FROM employees;
运行结果如下所示: