设为首页 收藏本站
查看: 879|回复: 0

[经验分享] ORACLE 单行函数 转

[复制链接]

尚未签到

发表于 2016-7-17 12:13:33 | 显示全部楼层 |阅读模式
1. 数字函数

ABS 取绝对值 POWER 乘方 LN 10为底数取0

SQRT 平方根 EXP e的n次乘方 LOG(m,n) m为底数n取0

数学运算函数:ACOS ATAN ATAN2 COS COSH SIGN SIN SINH TAN TANH

CEIL 大于或等于取整数

FLOOR 小于或等于取整数

MOD 取余数

ROUND(n,m) 按m的位数取四舍五入值如果round(日期): 中午12以后将是明天的日期.

round(sysdate,'Y')是年的第一天

TRUNC(n,m) 按m的位数取小数点后的数值如果trunc(日期), 确省的是去掉时间

2. 字符函数

CHR 按数据库的字符集由数字返回字符

CONCAT(c1,c2) 把两个字符c1,c2组合成一个字符, 和 || 相同

REPLACE(c,s,r) 把字符c里出现s的字符替换成r, 返回新字符

SUBSTR(c,m,n) m大于0,字符c从前面m处开始取n位字符,m等于0和1一样,

m小与0,字符c从后面m处开始取n位字符

TRANSLATE(c,f1,t1) 字符c按f1到t1的规则转换成新的字符串

INITCAP 字符首字母大写,其它字符小写

LOWER 字符全部小写

UPPER 字符全部大写

LTRIM(c1,c2) 去掉字符c1左边出现的字符c2

RTRIM(c1,c2)

TRIM(c1,c2) 去掉字符c1左右两边的字符c2

LPAD(c1,n,c2) 字符c1按制定的位数n显示不足的位数用c2字符串替换左边的空位

RPAD(c1,n,c2)

3. 日期函数

ADD_MONTHS(d,n) 日期值加n月

LAST_DAY 返回当月的最后一天的日期

MONTHS_BETWEEN(d1,d2) 两个日期值间的月份,d1<d2 返回负数

NEXT_DAY 返回日期值下一天的日期

SYSDATE 当前的系统时间

DUAL是SYS用户下一个空表,它只有一个字段dummy

4. 转换函数(1)

TO_CHAR(date,'日期显示格式')

TO_CHAR(number) 用于显示或报表的格式对齐

TO_DATE(char,'日期显示格式')

TO_LOB 把long字段转换成lob字段

TO_NUMBER(char) 用于计算或者比较大小

4. 转换函数(2)

to_date里日期显示格式

YYYY 年 YEAR YYY YY Y

Q 季度

MM 月 MONTH MON

W 星期 (week of month) WW, IW (week of year)

(说明:周计是按ISO标准,从1月1日的星期数到后面七天为一周,不一定是从周一到周日)

DD 日 DAY DY

HH24 小时 HH12 HH

MI 分钟

SS 秒

如果想固定日期的显示格式可以在数据库的参数文件initorasid.ora里新写一行参数

NLS_DATE_FORMAT=yyyy-mm-dd

hh24:mi:ss可以在UNIX环境变量或者NT的注册表里的设置 NLS_DATE_FORMAT=yyyy-mm-dd

hh24:mi:ss

4. 转换函数(3)

如果想固定日期的显示格式可以用alter session命令改变

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

它的作用顺序如下:

initialization parameter

Environment variable

ALTER SESSION command

4. 转换函数 (4)

to_char(number)里数字显示格式

9 数字位

0 数字前面补0 to_char(-1200,'00000.00')

. 小数点的位置

, 标记位置的逗号 用在数字显示格式的左边

L 根据数据库字符集加货币符号 to_char(-1200,'L9999.99')

B 把数字0显示为空格,用在数字显示格式的右边

MI 右边的负数标记 to_char(-1200,'9999.99MI')

PR 括起来的负数 to_char(-1200,'9999.99PR')

EEEE 用指数方式表示 to_char(-1200,'9999.99EEEE')

5. 输入字符,返回数字的函数

instr(c1,c2) 字符c2出现在c1的位置, 不出现, 返回0, 常用于模糊查询

length 按数据库的字符集,算出字符c的长度,跟数据库的字符集有关, 一个汉字长度为1

6. 有逻辑比较的函数NVL(EXPR1, EXPR2)函数

解释: IF EXPR1=NULL RETURN EXPR2

ELSE RETURN EXPR1

DECODE(AA0V10R10V20R2....)函数

解释: IF AA=V1 THEN RETURN R1

IF AA=V2 THEN RETURN R2

..…

ELSE

RETURN NULL

举例: decode(id,1,'dept sale',2,'dept tech')

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245335-1-1.html 上篇帖子: ORACLE 时间函数(一) 转 下篇帖子: ORACLE语句优化(中)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表