3.oracle 的过滤和模糊和排序
过滤 关键字字段 where
1.例如在原有的查询sql后面加上
select * from 表名 where 字段名 > 200 and 字段名 = ‘111‘ or z字段名 = ‘1112‘
2.多条件查询 and优先级大于or 过滤条件区分大小写
3.字符串出现的话严格区分大小写
时间的话可以用to_char(字段名,‘yyyy-mm-dd‘) 转换成字符再比较
to_char(字段名,“yyy-mm-dd”) = ‘1994-06-07‘
4.比较运算符号和mysql 一致 唯一的区别就是<>oracle中可以表示=,赋值符号:=
5. 多值中有一个符合就显示得话可以不用一直 使用in(值,值,值,)
6.单个模糊
where 字段名 like ‘%a%‘ %在前面 表示前面可以不管是啥 后面有a就行 后面%那个就是 理念相同
如果要表示第个2是a的 那就是where 字段名 like ‘_a%‘ 第几个就加几个下滑线 (如果这个字段的中含有下划线怎么办,like ‘-a%‘)escape ‘‘
写oracle sql时有时候会有 and (字段 like ‘匹配串1’or 字段 like ‘匹配串2’or ...)这样的情况出现,下面提供一个简洁点的解决方案--
<=>
and REGEXP_LIKE(字段, ‘(匹配串1|匹配串2|...)‘) //全模糊匹配 等价于上一行,行的通
and REGEXP_LIKE(字段, ‘^(匹配串1|匹配串2|...)‘) ";//右模糊匹配
and REGEXP_LIKE(字段, ‘(匹配串1|匹配串2|...)$‘) ";//左模糊匹配
7.空值 的条件 就是 字段值 is null 非空值条件 字段名 is not null
8. 条件优先级
最大刀最小 算术运算,链接符,比较符, (is null 或者 like 或者in) ,between ,not ,and ,or 可以使用括号 修改运算优先级
9.字段名 between A and B
排序 order by 关键子 desc 倒序 asc 正序 默认正序
sql 实例
select * from 表名 where 字段名 = ’aaa‘ order by 字段名 desc 如果没有 字段名 = ’aaa‘ 这个条件 需要把where 去掉
1. 多个排序字段写法
order by 字段名 desc,字段名 asc 在第一个条件相同的条件下进行第二个条件排序