一些不常用的Oracle用法记录(含模糊查询)
(一)、判断 某字段 是否包含 某字符串
select * from mc_member m where instr(m.bu, 'BU') > 0 --查询bu包含'BU'
(二)、将 某字段,符合条件的部分字符串,替换成 指定的字符串
update mc_member m set m.bu = replace(m.bu,'BU','') where instr(m.bu, 'BU') > 0 --去掉(替换成空)bu 里 的BU字符串
(三)、判断 某字符串 的长度
select * from mc_member m where length(m.name) < 3 --查询 名字 为两个字的人
(四)、截取 特定长度 的字符串
select SUBSTR(m.name,0,1) 姓氏,m.* from mc_member m order by 姓氏 --SUBSTR(string,start,count) 提出 名字 的姓氏
select t.姓氏, count(1) 数量 from (select SUBSTR(m.name, 0, 1) 姓氏 from mc_member m) t group by t.姓氏 -- 统计 每个姓氏 的数量
(五)、返回指定长度的字符串
select lpad(rpad('gao',5,'R'),7,'L')from dual; --不够的用 指定的 字符串填充
(六)、返回除去左右空格的字符串
select ltrim(rtrim(' gao qian jing ',' '),' ') from dual; --去掉字符串左右的空格
(七)、最常用的 模糊查询(多用于表格顶部的条件删选时用)
select * from mc_member m where m.name like '%欣%' --名字中带‘欣’字的