博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
infoepo sql用法整理
阅读量:7031 次
发布时间:2019-06-28

本文共 2584 字,大约阅读时间需要 8 分钟。

用的较多的函数:round、sum、 decode()、nvl()、 left join、 group by 、to_number(varchar2)

round(sum(nvl(to_number(ta.curr_year_inv_at), 0))/10000,2) as curr_year_inv_at
decode(ta.unit_in_charge, '1', '省管', '2', '市管', '3', '集团') as unit_name,
group by ta.unit_in_charge

------------------------------------------------substr()

/**默认过滤当前年数据**/
hsqlbuffer.append(" and substr(t.project_cd,2,2) =:applyyear ");
paraMap.put("applyyear", searchBean.getApplyyear().substring(2));
--substr(字符串,截取开始位置,截取长度)=返回截取的字
select substr('miaoying',0,1) from dual;--返回结果为:m
select substr('miaoying',1,1) from dual;--返回结果为:m--说明0和1都表示截取的位置为第一个字符
select substr('miaoying',-7,4) from dual;--返回结果为:iaoy--负数表示:-7表示从右边开始数第七位开始,也就是i,截取长度为4的字符串
-------------------------------------------------instr();
instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置
from t_pc_project_moneymaintain t1
join v_project_money t2
on t1.citycode = t2.citycode and instr(t1.project_cd,t2.project_cd) != 0

eg:

--instr(源字符串,目标字符串,起始字符串,匹配字符串)=返回要截取的字符串在源字符串中的位置,从字符的开始,只检索一次

--instr(string1,string2,index1,index2) 表示:要在string1的index1号位置,开始查找,第index2次,出现的string2
select instr('miaoying','i',2,2) from dual;--返回6:也就是说:在"miaoying"的第2号位置开始,查找第二次出现的i的位置
select instr('miaoying','k',2,2)from dual;--返回0:即如果查找不到,则返回0
select instr('miaoying','i') from dual;--返回2
select instr('miaoying','yi') from dual;--返回5:即"yi"的y的位置
select instr('miaoying','i',-1,2) from dual;--返回2:
--空格也是字符。。。。。

select * from omgnode a where name like '%miaoying%'

select * from omgnode a where instr(name,'miaoying')>0--效果一样
--------------------------------------------------------------------------------------round 函数:四舍五入后保留几位小数点
如何使用 Oracle Round 函数 (四舍五入)
描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL
参数:
number : 欲处理之数值
decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )
Sample :
select round(123.456, 0) from dual; 回传 123
select round(123.456, 1) from dual; 回传 123.5
select round(123.456, 2) from dual; 回传 123.46
select round(123.456, 3) from dual; 回传 123.456
select round(-123.456, 2) from dual; 回传 -123.46

--------------------------------------------------------------------------------------sign 函数: 函数返回一个数字的正负标志.

sign 函数返回一个数字的正负标志.
语法如下:sign( number )
number 要测试标志的数字.
If number < 0, then sign returns -1.
If number = 0, then sign returns 0.
If number > 0, then sign returns 1.
应用于:
Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g
例如:
sign(-23)
would return -1
sign(-0.001)
would return -1
sign(0)
would return 0
sign(0.001)
would return 1
sign(23)
would return 1
sig(23.601)
would return 1

转载于:https://www.cnblogs.com/21heshang/p/8033884.html

你可能感兴趣的文章
如何优化您的 Android 应用 (Go 版)
查看>>
Trie树实现
查看>>
Opencv无法调用cvCaptureFromCAM无法打开电脑自带摄像头
查看>>
Exception异常处理机制
查看>>
复杂的web---web中B/S网络架构
查看>>
编写文档的时候各种问题
查看>>
Eclipse里maven的project报Unbound classpath variable: 'M2_REPO/**/***/***.jar
查看>>
新旅程CSS 基础篇分享一
查看>>
查看内核函数调用的调试方法【原创】
查看>>
个人项目中遇到的问题
查看>>
byte与base64string的相互转化以及加密算法
查看>>
20145103 《Java程序设计》第3周学习总结
查看>>
ubuntu声音系统
查看>>
哈哈更新资源列表2
查看>>
冲刺第一周第五天
查看>>
Java 接口
查看>>
Android 微信第三方登录
查看>>
硬盘的读写原理
查看>>
实例 centos自动挂载、备份windows共享文件夹,并删除第7日前当天的备份
查看>>
LNMP下动静分离部署phpmyadmin软件包
查看>>