SQL常用字符函数

-- 字符函数主要用于对字段里的字符串或值进行比较、连接、搜索、提取片段等


-- 串接(join+smith=joinsmith)
-- concat(colunm_name,[ '', ] column_name[column_name])
SELECT CONCAT('join','smith')
-- 用逗号隔开(1,二狗蛋)
SELECT CONCAT(NO,',',NAME)FROM book


-- TRANSLATE()
-- MySQL不可用,可使用多个replace 完成TRANSLATE()功能
-- 将字符串NAME中所有的a替换成1,b替换成2..........
SELECT NAME ,TRANSLATE(NAME,'abc','123') FROM book


-- 替换: REPLACE('value','value',[null],'value')
SELECT REPLACE('aaaabcdefg','a','1') -- 将abcdefg中所有的a替换成1
SELECT NAME ,REPLACE(NAME,'a','1') FROM book


-- 大写转换:UPPER(character string)
SELECT UPPER("aaaaaaa")
SELECT UPPER(NAME) FROM book


-- 小写转换:LOWER(character string)
SELECT LOWER("AAAAAAA")
SELECT LOWER(NAME) FROM book


-- 截取:SUBSTR(COLUMN NAME,STARTION POSITION,LENGTH)
-- 从第几个开始截取几个
-- 第一个字符索引为1
SELECT SUBSTR("123456789",1,3) -- 从第一个字符开始截取三个字符得到123
SELECT SUBSTR(NAME,5,3)FROM book --从第5个字符开始向后截取3个字符


-- INSTR(字段名, 字符串)
-- 返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始)
SELECT INSTR('123A567A9','A')
SELECT INSTR(NAME,'A')FROM book


-- 去除字符串左边的空格:LTRIM(string)
SELECT LTRIM('     123A56789')
SELECT LTRIM(NAME)FROM book


-- 去除字符串右边的空格:RTRIM(string)
SELECT RTRIM('123A56789       ') a
SELECT RTRIM(NAME)FROM book


-- 长度(字节):LENGTH(value)
SELECT LENGTH('123A56789') 
SELECT LENGTH(NAME)FROM book


-- 如果为空用‘substitution’代替:IFNULL(value,substitution)
SELECT IFNULL(NULL,'a') 
SELECT IFNULL(NAME,'a')FROM book


-- 如果集合为空:COALESCE()
-- 功能类型IFNULL,不同之处是COALESCE可以判断一个数据集合(多列判断)
SELECT COALESCE(NULL,NULL,NULL,'a') 
SELECT COALESCE(NAME,writer,price,'a')FROM book
-- 如果传入的参数所有都是null,则返回null
SELECT COALESCE(NULL,NULL,NULL,1) 
SELECT COALESCE(NULL,NULL,NULL,NULL) 


-- 左填充:LPAD(character set)
-- 在字符串左面填充N-字符串长度个str使得字符串长度为N
SELECT LPAD('12345',10,'+') 
SELECT LPAD(NAME,15,'+')FROM book


-- 右填充:RPAD(character set)
-- 在字符串右面填充N-字符串长度个str使得字符串长度为N
SELECT RPAD('12345',10,'+') 
SELECT RPAD(NAME,15,'+')FROM book

-- 美国信息交换标准代码:ASCII(character set)
-- 返回第一个字符的ASCII码
SELECT ASCII('A')
SELECT ASCII('ABC')
SELECT ASCII(NAME) FROM BOOK




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值