oracle未授权sql查询,【oracle使用笔记3】sql查询遇到的若干问题总结

在整个开发过程当中,sql查询操做的频率比较高,在不一样的业务场景下会出现不一样的查询需求,如下是我在项目中遇到的查询需求,总结一下。sql

【查询一】:取查询出的第一条数据oracle

select * from (select  * from  [tableName]  order  by  [key] asc/desc ) where  rownum = 1函数

【查询二】:查询数值数据时,小于0的数值,小数点前的0须要显示性能

Oracle中对于数值的数据,小于0时小数点前的0不显示,如:.9,实际查询操做中须要显示为:0.9 ;一样,若是小数点后有0也会被Oracle隐藏,如0.20会显示0.2spa

【思路】:使用to_char()函数将数值类型转为字符类型处理,如:to_char(0.4, 'fm990.09'),结果会显示0.4,而不是 .4 ;code

【注】:格式fm90.09或fm99990.0099或fm999999990.000099999等等是由数据的大小而设定的,如“'fm99990.0099'”会显示0.40 ,能够动手试一试,取本身须要的格式索引

【查询三】:模糊匹配查询开发

在SQL中,一般使用like进行模糊匹配搜索,也能够用oracle中的instr()函数,做为模糊匹配时,该函数语法为:字符串

instr(源字符串,目标字符串)>0    等同于    源字符串 like ‘%目标字符串%’table

instr(源字符串,目标字符串)=0    等同于    取反(not  like)

instr(源字符串,目标字符串)=1   等同于    目标字符串后缀模糊匹配

根据实际使用的状况来看,两者区别有几点:

当表的数据量很大时(千万级),使用like关键字查询至关慢,而使用instr()相对快一些,性能明显优于like关键字

在数据量大的且常常用来查询的表字段上加索引,使用instr()模糊匹配的效率会更好

【查询四】:条件语句查询

最经常使用的就是decode()和case..when..then,decode()函数使用比较简单,case..when..then比较复杂但很灵活

1.decode()函数:

语法:select  decode(条件,值1,返回值1,值2,返回值2,…….,缺省值)from dual

结合sign()函数能够比较大小:select decode(sign(arg1-arg2),-1,arg1,arg2) from dual

2.case..when..then的2种用法:

case(条件) when  条件1    then 返回值1   when   条件2   then   返回值2   else  其余返回值

case  when  条件表达式1   then 返回值1   when   条件表达式2   then   返回值2   else  其余返回值  end

3. 总结:decode()函数只能用作相等判断,可是能够配合sign函数进行大于,小于,等于的判断,CASE when可用于=,>=,,is null,is not null 等判断

未完待续.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值